From: Brian Paul Date: Tue, 1 Dec 2015 20:02:05 +0000 (-0700) Subject: glapi: work-around MSVC 65K string length limitation for enums.c X-Git-Tag: upstream/17.1.0~14091 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f391b95105489be58f33991eb49a24d3d509f897;p=platform%2Fupstream%2Fmesa.git 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 Reviewed-by: Ian Romanick --- 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 ''