summaryrefslogtreecommitdiff
path: root/src/binary-writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary-writer.cc')
-rw-r--r--src/binary-writer.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/binary-writer.cc b/src/binary-writer.cc
index ef9f352f..1ffc2536 100644
--- a/src/binary-writer.cc
+++ b/src/binary-writer.cc
@@ -1032,19 +1032,18 @@ Result BinaryWriter::WriteModule() {
for (size_t i = 0; i < module_->elem_segments.size(); ++i) {
ElemSegment* segment = module_->elem_segments[i];
WriteHeader("elem segment header", i);
- if (segment->passive) {
- stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::Passive));
+ stream_->WriteU8(segment->flags, "segment flags");
+ if (segment->is_passive()) {
WriteType(stream_, segment->elem_type);
- } else if (module_->GetTableIndex(segment->table_var)) {
- stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::IndexOther));
+ } else if (segment->flags & SegIndexOther) {
WriteU32Leb128(stream_, module_->GetTableIndex(segment->table_var), "table index");
WriteInitExpr(segment->offset);
} else {
- stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::IndexZero));
+ assert(module_->GetTableIndex(segment->table_var) == 0);
WriteInitExpr(segment->offset);
}
- WriteU32Leb128(stream_, segment->elem_exprs.size(), "num elem exprs");
- if (segment->passive) {
+ WriteU32Leb128(stream_, segment->elem_exprs.size(), "num elems");
+ if (segment->is_passive()) {
for (const ElemExpr& elem_expr : segment->elem_exprs) {
switch (elem_expr.kind) {
case ElemExprKind::RefNull:
@@ -1104,11 +1103,11 @@ Result BinaryWriter::WriteModule() {
for (size_t i = 0; i < module_->data_segments.size(); ++i) {
const DataSegment* segment = module_->data_segments[i];
WriteHeader("data segment header", i);
- if (segment->passive) {
- stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::Passive));
+ if (segment->is_passive()) {
+ stream_->WriteU8(SegPassive);
} else {
assert(module_->GetMemoryIndex(segment->memory_var) == 0);
- stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::IndexZero));
+ stream_->WriteU8(SegIndexZero);
WriteInitExpr(segment->offset);
}
WriteU32Leb128(stream_, segment->data.size(), "data segment size");