本文整理汇总了C++中Segment::byte方法的典型用法代码示例。如果您正苦于以下问题:C++ Segment::byte方法的具体用法?C++ Segment::byte怎么用?C++ Segment::byte使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Segment
的用法示例。
在下文中一共展示了Segment::byte方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseData
bool ModuleParser::parseData()
{
uint32_t segmentCount;
if (!parseVarUInt32(segmentCount)
|| segmentCount == std::numeric_limits<uint32_t>::max()
|| !m_module->data.tryReserveCapacity(segmentCount))
return false;
if (verbose)
dataLogLn(" segments: ", segmentCount);
for (uint32_t segmentNumber = 0; segmentNumber < segmentCount; ++segmentNumber) {
if (verbose)
dataLogLn(" segment #", segmentNumber);
uint32_t index;
uint64_t offset;
uint8_t initOpcode;
uint32_t dataByteLength;
if (!parseVarUInt32(index)
|| index)
return false;
if (!parseInitExpr(initOpcode, offset))
return false;
if (initOpcode != OpType::I32Const)
return false;
if (verbose)
dataLogLn(" offset: ", offset);
if (!parseVarUInt32(dataByteLength)
|| dataByteLength == std::numeric_limits<uint32_t>::max())
return false;
if (verbose)
dataLogLn(" data bytes: ", dataByteLength);
Segment* segment = Segment::make(offset, dataByteLength);
if (!segment)
return false;
m_module->data.uncheckedAppend(Segment::makePtr(segment));
for (uint32_t dataByte = 0; dataByte < dataByteLength; ++dataByte) {
uint8_t byte;
if (!parseUInt8(byte))
return false;
segment->byte(dataByte) = byte;
if (verbose)
dataLogLn(" [", dataByte, "] = ", segment->byte(dataByte));
}
}
return true;
}