Module: Mesa Branch: master Commit: f391b95105489be58f33991eb49a24d3d509f897 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f391b95105489be58f33991eb49a24d3d509f897
Author: Brian Paul <[email protected]> Date: Tue Dec 1 13:02:05 2015 -0700 glapi: work-around MSVC 65K string length limitation for enums.c String literals cannot exceed 65535 characters for MSVC. Instead of emiting a string, emit an array of characters. v2: fix indentation and add comment in the gl_enums.py file about this ugliness. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]> --- src/mapi/glapi/gen/gl_enums.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mapi/glapi/gen/gl_enums.py b/src/mapi/glapi/gen/gl_enums.py index 6e18f15..62cc1b3 100644 --- a/src/mapi/glapi/gen/gl_enums.py +++ b/src/mapi/glapi/gen/gl_enums.py @@ -156,14 +156,21 @@ _mesa_lookup_prim_by_nr(GLuint nr) print '# define LONGSTRING' print '#endif' print '' - print 'LONGSTRING static const char enum_string_table[] = ' + print 'LONGSTRING static const char enum_string_table[] = {' + # We express the very long concatenation of enum strings as an array + # of characters rather than as a string literal to work-around MSVC's + # 65535 character limit. for enum in sorted_enum_values: (name, pri) = self.enum_table[enum] - print ' "%s\\0"' % (name) + print " ", + for ch in name: + print "'%c'," % ch, + print "'\\0'," + string_offsets[ enum ] = i i += len(name) + 1 - print ' ;' + print '};' print '' _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
