summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaron Cohen-Tal <yaronct@gmail.com>2015-09-22 10:02:44 +0300
committerYaron Cohen-Tal <yaronct@gmail.com>2015-09-22 10:02:44 +0300
commit6fe6b8e2d4f038654aec248d688ac955035bdbae (patch)
tree8410dcc5231a5b30ff09f9dc7a2ae72a146f714e
parent2bf2468502cf96b5db9f21366348f82b51990cce (diff)
parent262a62345220c1b2a5e55a04717bcc927538d6c9 (diff)
downloadlibepoxy-6fe6b8e2d4f038654aec248d688ac955035bdbae.tar.gz
Merge branch "nephatrine/registry-support".
-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 7919ad0..5f951a2 100755
--- a/src/gen_dispatch.py
+++ b/src/gen_dispatch.py
@@ -541,7 +541,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))
@@ -631,22 +631,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;')
@@ -683,7 +685,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('')