From e08cba191e53fc680ab7b003e6131515d3b34eaa Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 22 Feb 2023 21:54:53 +0100 Subject: [PATCH] dist: Significant performance boost for pfreeze This method seems to run very slow in some versions of Python, this runs much faster --- direct/src/dist/FreezeTool.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/direct/src/dist/FreezeTool.py b/direct/src/dist/FreezeTool.py index 52e4fc1ba5..c978680680 100644 --- a/direct/src/dist/FreezeTool.py +++ b/direct/src/dist/FreezeTool.py @@ -2337,17 +2337,8 @@ class Freezer: return blob_offset def makeModuleDef(self, mangledName, code): - result = '' - result += 'static unsigned char %s[] = {' % (mangledName) - for i in range(0, len(code), 16): - result += '\n ' - for c in code[i:i+16]: - if isinstance(c, int): # Python 3 - result += ('%d,' % c) - else: # Python 2 - result += ('%d,' % ord(c)) - result += '\n};\n' - return result + lines = ',\n '.join(','.join(map(str, code[i:i+16])) for i in range(0, len(code), 16)) + return f'static unsigned char {mangledName}[] = {{\n {lines}\n}};\n' def makeModuleListEntry(self, mangledName, code, moduleName, module): size = len(code)