}
void visit(Enum *node) {
- writer.writeEnum(node->sig);
+ writer.writeEnum(node->sig, node->value);
}
void visit(Bitmask *node) {
}
void visit(Pointer *node) {
- writer.writeOpaque((const void *) (size_t) node->value);
+ writer.writePointer(node->value);
+ }
+
+ void visit(Repr *node) {
+ writer.beginRepr();
+ _visit(node->humanValue);
+ _visit(node->machineValue);
+ writer.endRepr();
}
void visit(Call *call) {
- unsigned call_no = writer.beginEnter(call->sig);
+ unsigned call_no = writer.beginEnter(call->sig, call->thread_id);
for (unsigned i = 0; i < call->args.size(); ++i) {
- if (call->args[i]) {
+ if (call->args[i].value) {
writer.beginArg(i);
- _visit(call->args[i]);
+ _visit(call->args[i].value);
writer.endArg();
}
}