tools: Write msvc-compatible frozen content.

The msvc compiler doesn't accept zero-sized arrays so let the freezing
process generate compatible C code in case no modules are found and the
involved arrays are all empty.  This doesn't affect the functionality in
any way because those arrays only get accessed when mp_frozen_mpy_names
contains names, i.e.  when modules are actually found.
pull/6435/head
stijn 2020-09-10 12:22:49 +02:00 zatwierdzone przez Damien George
rodzic 373b400632
commit 4b35aa5730
2 zmienionych plików z 3 dodań i 3 usunięć

Wyświetl plik

@ -50,7 +50,7 @@ print("const uint32_t mp_frozen_str_sizes[] = {")
for f, st in modules: for f, st in modules:
print("%d," % st.st_size) print("%d," % st.st_size)
print("};") print("0};")
print("const char mp_frozen_str_content[] = {") print("const char mp_frozen_str_content[] = {")
for f, st in modules: for f, st in modules:
@ -82,4 +82,4 @@ for f, st in modules:
chrs.append('\\0"') chrs.append('\\0"')
print("".join(chrs)) print("".join(chrs))
print("};") print('"\\0"};')

Wyświetl plik

@ -327,7 +327,7 @@ def main():
b" (qstr_pool_t*)&mp_qstr_const_pool, MP_QSTRnumber_of, 0, 0\n" b" (qstr_pool_t*)&mp_qstr_const_pool, MP_QSTRnumber_of, 0, 0\n"
b"};\n" b"};\n"
b'const char mp_frozen_mpy_names[1] = {"\\0"};\n' b'const char mp_frozen_mpy_names[1] = {"\\0"};\n'
b"const mp_raw_code_t *const mp_frozen_mpy_content[0] = {};\n" b"const mp_raw_code_t *const mp_frozen_mpy_content[1] = {NULL};\n"
) )
# Generate output # Generate output