for type, name in struct.members:
self.visit(type)
print 'static void __traceStruct%s(const %s &value) {' % (struct.id, struct.expr)
- print ' Log::BeginStruct("%s");' % struct.name
+ print ' Log::BeginStruct(%u);' % len(struct.members)
for type, name in struct.members:
print ' Log::BeginMember("%s");' % (name,)
dump_instance(type, 'value.%s' % (name,))
def visit_pointer(self, pointer, instance):
print ' if(%s) {' % instance
- print ' Log::BeginPointer((const void *)%s);' % (instance,)
+ print ' Log::BeginArray(1);'
+ print ' Log::BeginElement();'
dump_instance(pointer.type, "*" + instance)
- print ' Log::EndPointer();'
+ print ' Log::EndElement();'
+ print ' Log::EndArray();'
print ' }'
print ' else'
print ' Log::LiteralNull();'
print
def dump_arg(self, function, arg):
- print ' Log::BeginArg("%s");' % (arg.name,)
+ print ' Log::BeginArg(%u, "%s");' % (arg.index, arg.name,)
dump_instance(arg.type, arg.name)
print ' Log::EndArg();'
print ' %s __result;' % method.type
result = '__result = '
print ' Log::BeginCall("%s");' % (interface.name + '::' + method.name)
- print ' Log::BeginArg("this");'
+ print ' Log::BeginArg(0, "this");'
print ' Log::LiteralOpaque((const void *)m_pInstance);'
print ' Log::EndArg();'
for arg in method.args: