From 54584df8cc0e663d931de0576a967ffec7fd3ce4 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Jan 2005 18:20:43 +0000 Subject: [PATCH] Properly annotate variable-length output parameters. Make sure that the client-side code doesn't try to calculate the size of the output parameters. The server will tell the client how big it is. --- src/mesa/glapi/glX_XML.py | 8 ++ src/mesa/glapi/glX_proto_send.py | 2 +- src/mesa/glapi/gl_API.xml | 179 ++++++++++++++++--------------- 3 files changed, 100 insertions(+), 89 deletions(-) diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py index 6eb2f553f96..1db12f5c940 100644 --- a/src/mesa/glapi/glX_XML.py +++ b/src/mesa/glapi/glX_XML.py @@ -452,6 +452,14 @@ class glXFunction(gl_XML.glFunction): return None + def output_parameter(self): + for param in self.fn_parameters: + if param.is_output: + return param + + return None + + def offset_of_first_parameter(self): """Get the offset of the first parameter in the command. diff --git a/src/mesa/glapi/glX_proto_send.py b/src/mesa/glapi/glX_proto_send.py index 2090555cafd..7216b699720 100644 --- a/src/mesa/glapi/glX_proto_send.py +++ b/src/mesa/glapi/glX_proto_send.py @@ -339,7 +339,7 @@ generic_%u_byte( GLint rop, const void * ptr ) if f.fn_return_type != 'void': print ' %s retval = (%s) 0;' % (f.fn_return_type, f.fn_return_type) - if f.count_parameters != None: + if f.count_parameters and not f.output_parameter(): print ' const GLuint compsize = __gl%s_size(%s);' % (f.name, f.count_parameters) elif f.image: [dim, w, h, d, junk] = f.dimensions() diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml index f76e355e52a..0b63c565d37 100644 --- a/src/mesa/glapi/gl_API.xml +++ b/src/mesa/glapi/gl_API.xml @@ -2359,19 +2359,19 @@ glx: - + - + - + @@ -2382,80 +2382,80 @@ glx: - + - + - + - + - + - + - + - + - + - + - + - + @@ -2473,35 +2473,35 @@ glx: - + - + - + - + - + @@ -2517,14 +2517,14 @@ glx: - + - + @@ -2532,7 +2532,7 @@ glx: - + @@ -2540,7 +2540,7 @@ glx: - + @@ -2970,7 +2970,7 @@ glx: - + @@ -2989,7 +2989,7 @@ glx: - + @@ -3312,14 +3312,14 @@ glx: - + - + @@ -3421,14 +3421,14 @@ glx: - + - + @@ -3466,14 +3466,14 @@ glx: - + - + @@ -3489,14 +3489,14 @@ glx: - + - + @@ -4426,14 +4426,14 @@ glx: - - + + - + @@ -4466,8 +4466,8 @@ glx: - - + + @@ -4492,19 +4492,19 @@ glx: - + - + - + @@ -4889,8 +4889,8 @@ glx: - - + + @@ -4901,8 +4901,8 @@ glx: - - + + @@ -4912,8 +4912,8 @@ glx: - - + + @@ -4927,8 +4927,8 @@ glx: - - + + @@ -4940,8 +4940,8 @@ glx: - - + + @@ -4951,8 +4951,8 @@ glx: - - + + @@ -5669,8 +5669,8 @@ glx: - - + + @@ -5884,8 +5884,8 @@ glx: - - + + @@ -5939,8 +5939,8 @@ glx: - - + + @@ -6664,14 +6664,14 @@ glx: - + - + @@ -6687,14 +6687,14 @@ glx: - + - + @@ -6847,14 +6847,14 @@ glx: - + - + @@ -6921,14 +6921,14 @@ glx: - + - + @@ -6960,13 +6960,13 @@ glx: - + - + @@ -7011,7 +7011,7 @@ glx: - + @@ -7025,13 +7025,14 @@ glx: do not have the same protocol! --> - - + + + - + @@ -7428,13 +7429,13 @@ glx: - + - + @@ -7531,14 +7532,14 @@ glx: - + - + @@ -7547,14 +7548,14 @@ glx: - + - + @@ -7622,6 +7623,8 @@ glx: + + @@ -7774,28 +7777,28 @@ glx: - + - + - + - + @@ -9156,8 +9159,8 @@ glx: - - + + @@ -9318,8 +9321,8 @@ glx: - - + + -- 2.30.2