summaryrefslogtreecommitdiff
path: root/src/gen_dispatch.py
diff options
context:
space:
mode:
authorDaniel Wolf <nephatrine@gmail.com>2015-09-21 23:09:23 -0400
committerEmmanuele Bassi <ebassi@gnome.org>2016-12-07 15:03:53 +0000
commitc2e09ebde9f6f529a28e59c037fa53abb7f35f96 (patch)
tree883d1aa57c46af1f66dc0af40882b7edb90d37d1 /src/gen_dispatch.py
parentc45cc5f821b10fe1c0a3c327502d8133365a09ba (diff)
downloadlibepoxy-c2e09ebde9f6f529a28e59c037fa53abb7f35f96.tar.gz
support newer/larger gl.xml
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
Diffstat (limited to 'src/gen_dispatch.py')
-rwxr-xr-xsrc/gen_dispatch.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py
index 5a45284..306a78b 100755
--- a/src/gen_dispatch.py
+++ b/src/gen_dispatch.py
@@ -578,7 +578,7 @@ class Generator(object):
self.outln(' {0}_provider_terminator'.format(self.target))
self.outln(' };')
- self.outln(' static const uint16_t entrypoints[] = {')
+ self.outln(' static const uint32_t entrypoints[] = {')
if len(providers) > 1:
for provider in providers:
self.outln(' {0} /* "{1}" */,'.format(self.entrypoint_string_offset[provider.name], provider.name))
@@ -669,22 +669,24 @@ class Generator(object):
def write_entrypoint_strings(self):
self.entrypoint_string_offset = {}
- self.outln('static const char entrypoint_strings[] = ')
+ self.outln('static const char entrypoint_strings[] = {')
offset = 0
for func in self.sorted_functions:
if func.name not in self.entrypoint_string_offset:
self.entrypoint_string_offset[func.name] = offset
offset += len(func.name) + 1
- self.outln(' "{0}\\0"'.format(func.name))
- self.outln(' ;')
+ for c in func.name:
+ self.outln(" '{0}',".format(c))
+ self.outln(' 0, // {0}'.format(func.name))
+ self.outln(' 0 };')
# We're using uint16_t for the offsets.
- assert(offset < 65536)
+ #assert(offset < 65536)
self.outln('')
def write_provider_resolver(self):
self.outln('static void *{0}_provider_resolver(const char *name,'.format(self.target))
self.outln(' const enum {0}_provider *providers,'.format(self.target))
- self.outln(' const uint16_t *entrypoints)')
+ self.outln(' const uint32_t *entrypoints)')
self.outln('{')
self.outln(' int i;')
@@ -721,7 +723,7 @@ class Generator(object):
self.outln('}')
self.outln('')
- single_resolver_proto = '{0}_single_resolver(enum {0}_provider provider, uint16_t entrypoint_offset)'.format(self.target)
+ single_resolver_proto = '{0}_single_resolver(enum {0}_provider provider, uint32_t entrypoint_offset)'.format(self.target)
self.outln('EPOXY_NOINLINE static void *')
self.outln('{0};'.format(single_resolver_proto))
self.outln('')