summaryrefslogtreecommitdiff
path: root/src/mesa/es/main/APIspecutil.py
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2009-11-23 14:40:32 +0800
committerBrian Paul <brianp@vmware.com>2010-01-04 14:15:15 -0700
commita2d21f67f901ec34799819ba47b9579ac78bf112 (patch)
tree3b3f02e50d95215208c71caba31291e67f9ac740 /src/mesa/es/main/APIspecutil.py
parentf7d23dfef54f837e21ff590ab0929802c3540831 (diff)
mesa/es: Generate code for special functions.
es_generator.py did not generate code for special functions. They were supposed to be defined elsewhere. But as a result, parameter checking was also skipped. This commit changes the way special functions are called so that parameter checking is always performed. When there is nothing to check, the check functions becomes macros expanding to the real functions, as an optimization. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Diffstat (limited to 'src/mesa/es/main/APIspecutil.py')
-rw-r--r--src/mesa/es/main/APIspecutil.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/es/main/APIspecutil.py b/src/mesa/es/main/APIspecutil.py
index 5bfb699ba7..27a8fe8a6d 100644
--- a/src/mesa/es/main/APIspecutil.py
+++ b/src/mesa/es/main/APIspecutil.py
@@ -59,8 +59,11 @@ def _ParseXML(filename, apiname):
for func in api.functions:
alias, need_conv = impl.match(func, conversions)
if not alias:
- print >>sys.stderr, "Error: unable to dispatch %s" % func.name
+ # external functions are manually dispatched
+ if not func.is_external:
+ print >>sys.stderr, "Error: unable to dispatch %s" % func.name
alias = func
+ need_conv = False
__functions[func.name] = func
__aliases[func.name] = (alias, need_conv)