[Mesa-dev] [PATCH 3/9] dispatch: properly handle parameter name mismatches in glapitemp.h.
Paul Berry
stereotype441 at gmail.com
Tue Oct 30 10:42:56 PDT 2012
Previously, when code-generating aliased functions in glapitemp.h, we
weren't consistent about which function alias we used to obtain the
parameter names, with the risk that we would generate incorrect code
like this:
KEYWORD1 void KEYWORD2 NAME(Foo)(GLint x)
{
(void) x;
DISPATCH(Foo, (x), (F, "glFoo(%d);\n", x));
}
KEYWORD1 void KEYWORD2 NAME(FooEXT)(GLint y)
{
(void) x;
DISPATCH(Foo, (x), (F, "glFooEXT(%d);\n", x));
}
At the moment there are no aliased functions with mismatched parameter
names, so this isn't the problem. But when we introduce GLES1
functions into the dispatch table, there will be
(MapBufferRange/MapBufferRangeEXT). This patch paves the way for that
by fixing the code generation script to handle the mismatch correctly.
---
src/mapi/glapi/gen/gl_XML.py | 7 +++++--
src/mapi/glapi/gen/gl_apitemp.py | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
index ef7ed51..0196879 100644
--- a/src/mapi/glapi/gen/gl_XML.py
+++ b/src/mapi/glapi/gen/gl_XML.py
@@ -757,8 +757,11 @@ class gl_function( gl_item ):
return self.images
- def parameterIterator(self):
- return self.parameters.__iter__();
+ def parameterIterator(self, name = None):
+ if name is not None:
+ return self.entry_point_parameters[name].__iter__();
+ else:
+ return self.parameters.__iter__();
def get_parameter_string(self, entrypoint = None):
diff --git a/src/mapi/glapi/gen/gl_apitemp.py b/src/mapi/glapi/gen/gl_apitemp.py
index c9a6e29..4157032 100644
--- a/src/mapi/glapi/gen/gl_apitemp.py
+++ b/src/mapi/glapi/gen/gl_apitemp.py
@@ -66,7 +66,7 @@ class PrintGlOffsets(gl_XML.gl_print_base):
silence = ''
space = ''
- for p in f.parameterIterator():
+ for p in f.parameterIterator(name):
if p.is_padding:
continue
--
1.7.12.4
More information about the mesa-dev
mailing list