]> git.cworth.org Git - apitrace/blobdiff - common/trace_writer_model.cpp
Merge branch 'modules'
[apitrace] / common / trace_writer_model.cpp
index dcfcf86dcfe9184a29987b38bf8c00d13cbe44b4..2e858a233971e3434410b8daba6fb5601c66e3a9 100644 (file)
@@ -27,7 +27,7 @@
 #include "trace_writer.hpp"
 
 
-namespace Trace {
+namespace trace {
 
 
 class ModelWriter : public Visitor
@@ -60,12 +60,16 @@ public:
         writer.writeFloat(node->value);
     }
 
+    void visit(Double *node) {
+        writer.writeDouble(node->value);
+    }
+
     void visit(String *node) {
         writer.writeString(node->value);
     }
 
     void visit(Enum *node) {
-        writer.writeEnum(node->sig);
+        writer.writeEnum(node->sig, node->value);
     }
 
     void visit(Bitmask *node) {
@@ -93,15 +97,22 @@ public:
     }
 
     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();
             }
         }
@@ -123,5 +134,5 @@ void Writer::writeCall(Call *call) {
 }
 
 
-} /* namespace Trace */
+} /* namespace trace */