makepanda: Optimize WriteEmbeddedStringFile function

This function took ages with a debug build of Python
This commit is contained in:
rdb 2021-12-04 21:57:55 +01:00
parent 5de31c6293
commit cdadd00e72

View File

@ -3276,6 +3276,22 @@ def WriteResourceFile(basename, **kwargs):
return basename return basename
def GenerateEmbeddedStringFile(string_name, data):
yield 'extern const char %s[] = {\n' % (string_name)
i = 0
for byte in data:
if i == 0:
yield ' '
yield ' 0x%02x,' % (byte)
i += 1
if i >= 12:
yield '\n'
i = 0
yield '\n};\n'
def WriteEmbeddedStringFile(basename, inputs, string_name=None): def WriteEmbeddedStringFile(basename, inputs, string_name=None):
if os.path.splitext(basename)[1] not in SUFFIX_INC: if os.path.splitext(basename)[1] not in SUFFIX_INC:
basename += '.cxx' basename += '.cxx'
@ -3300,20 +3316,7 @@ def WriteEmbeddedStringFile(basename, inputs, string_name=None):
data.append(0) data.append(0)
output = 'extern const char %s[] = {\n' % (string_name) output = ''.join(GenerateEmbeddedStringFile(string_name, data))
i = 0
for byte in data:
if i == 0:
output += ' '
output += ' 0x%02x,' % (byte)
i += 1
if i >= 12:
output += '\n'
i = 0
output += '\n};\n'
ConditionalWriteFile(target, output) ConditionalWriteFile(target, output)
return target return target