summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Wick <[email protected]>2019-11-17 19:12:04 +0100
committerMarek Olšák <[email protected]>2019-11-21 22:52:55 -0500
commitb1156ecdf2f3a0488db6fbcb5e352634ebeece00 (patch)
tree0ba18efa6ed44bb054e77c26aa064dfa65354a8d /src
parente51eda99dfd6a66b066e371005e7a54ecc38fc11 (diff)
mapi/glapi: Generate sizeof() helpers instead of fixed sizes.
Generating a source code with a fixed size leads to issues with plattform dependent types. We either hard code 4 or 8 bytes there, and both are wrong on the other plattform. So this patch solves this issue by generating eg sizeof(GLsizeiptr), which is valid both on 32 and on 64 bit plattforms. Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mapi/glapi/gen/gl_XML.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
index 2854a9a5688..5b5f6e23b0a 100644
--- a/src/mapi/glapi/gen/gl_XML.py
+++ b/src/mapi/glapi/gen/gl_XML.py
@@ -565,7 +565,14 @@ class gl_parameter(object):
def size_string(self, use_parens = 1):
- s = self.size()
+ base_size_str = ""
+
+ count = self.get_element_count()
+ if count:
+ base_size_str = "%d * " % count
+
+ base_size_str += "sizeof(%s)" % ( self.get_base_type_string() )
+
if self.counter or self.count_parameter_list:
list = [ "compsize" ]
@@ -574,8 +581,8 @@ class gl_parameter(object):
elif self.counter:
list = [ self.counter ]
- if s > 1:
- list.append( str(s) )
+ if self.size() > 1:
+ list.append( base_size_str )
if len(list) > 1 and use_parens :
return "safe_mul(%s)" % ", ".join(list)
@@ -585,7 +592,7 @@ class gl_parameter(object):
elif self.is_image():
return "compsize"
else:
- return str(s)
+ return base_size_str
def format_string(self):