diff options
author | José Fonseca <jose.r.fonseca@gmail.com> | 2011-05-09 00:54:39 +0100 |
---|---|---|
committer | José Fonseca <jose.r.fonseca@gmail.com> | 2011-05-09 00:54:39 +0100 |
commit | 8bec8a0c309cffea31148ccbf0d5cf76e3e93619 (patch) | |
tree | f6723eab99f47fee16556231f0852bdc4b5523e4 /trace.py | |
parent | c28741ae0d28c4a761aad6640724c95c125f5186 (diff) |
Prevent different enums from obtaining the same id.
Regression introduced whith the merge of glenum,py and glparams, because
we manipulate enums after creating then,
Thanks to Zack for spotting this
Diffstat (limited to 'trace.py')
-rw-r--r-- | trace.py | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -73,12 +73,15 @@ class DumpDeclarator(stdapi.OnceVisitor): def visit_blob(self, array): pass + __enum_id = 0 + def visit_enum(self, enum): print 'static void __traceEnum%s(const %s value) {' % (enum.id, enum.expr) n = len(enum.values) for i in range(n): value = enum.values[i] - print ' static const Trace::EnumSig sig%u = {%u, "%s", %s};' % (i, enum.vid + i, value, value) + print ' static const Trace::EnumSig sig%u = {%u, "%s", %s};' % (i, DumpDeclarator.__enum_id, value, value) + DumpDeclarator.__enum_id += 1 print ' const Trace::EnumSig *sig;' print ' switch(value) {' for i in range(n): |