summaryrefslogtreecommitdiffstats
path: root/ppapi/generators/idl_c_proto.py
diff options
context:
space:
mode:
authorjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 22:53:04 +0000
committerjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 22:53:04 +0000
commit03f41ec4b0affa9c949e5e7190fcce0159c0fef3 (patch)
tree0b03f78b3e8c4edd11cedd464683695c8d97beec /ppapi/generators/idl_c_proto.py
parentab88d15445a1bbf1e55bc34a559f8942cb175a7a (diff)
downloadchromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.zip
chromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.tar.gz
chromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.tar.bz2
Convert a few ppapi dev interfaces to IDL. NaCl has tests for these
dev interfaces, and we want it to go through IDL so that the PNaCl shim will know about them. There are few others dev and private interfaces not yet converted to IDL, but this is a start. TEST= ./generator.py BUG= http://code.google.com/p/chromium/issues/detail?id=89968 Review URL: http://codereview.chromium.org/8586031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110777 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/generators/idl_c_proto.py')
-rw-r--r--ppapi/generators/idl_c_proto.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/ppapi/generators/idl_c_proto.py b/ppapi/generators/idl_c_proto.py
index f3eab9d..584cfaa 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)