Index: ppapi/generators/idl_c_proto.py |
diff --git a/ppapi/generators/idl_c_proto.py b/ppapi/generators/idl_c_proto.py |
index f3eab9da58dbfe137bc6a115c7bce8415429967d..584cfaa813871311e8502976b92ef7a58a5e5f21 100644 |
--- a/ppapi/generators/idl_c_proto.py |
+++ b/ppapi/generators/idl_c_proto.py |
@@ -254,7 +254,11 @@ class CGen(object): |
# If it's an enum, or typedef then return the Enum's name |
elif typeref.IsA('Enum', 'Typedef'): |
- name = '%s%s' % (prefix, typeref.GetName()) |
+ # The enum may have skipped having a typedef, we need prefix with 'enum'. |
+ if typeref.GetProperty('notypedef'): |
+ name = 'enum %s%s' % (prefix, typeref.GetName()) |
+ else: |
+ name = '%s%s' % (prefix, typeref.GetName()) |
else: |
raise RuntimeError('Getting name of non-type %s.' % node) |
@@ -413,12 +417,15 @@ class CGen(object): |
def DefineEnum(self, node, releases, prefix='', comment=False): |
__pychecker__ = 'unusednames=comment,releases' |
self.LogEnter('DefineEnum %s' % node) |
- unnamed = node.GetProperty('unnamed') |
+ name = '%s%s' % (prefix, node.GetName()) |
+ notypedef = node.GetProperty('notypedef') |
+ unnamed = node.GetProperty('unnamed') |
if unnamed: |
out = 'enum {' |
+ elif notypedef: |
+ out = 'enum %s {' % name |
else: |
out = 'typedef enum {' |
- name = '%s%s' % (prefix, node.GetName()) |
enumlist = [] |
for child in node.GetListOf('EnumItem'): |
value = child.GetProperty('VALUE') |
@@ -430,7 +437,7 @@ class CGen(object): |
enumlist.append('%s %s' % (comment_txt, item_txt)) |
self.LogExit('Exit DefineEnum') |
- if unnamed: |
+ if unnamed or notypedef: |
out = '%s\n%s\n};\n' % (out, ',\n'.join(enumlist)) |
else: |
out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name) |