Skip to content

Commit c18efd7

Browse files
authored
Use set() over list() for user_exported_functions. NFC (#13974)
This should always have been a set. Its never iterated only ever used for membership check. Also fix typo in tests/test_other.py. Split out from #13949
1 parent ff67f30 commit c18efd7

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

emcc.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1329,7 +1329,7 @@ def add_link_flag(i, f):
13291329
settings.EXIT_RUNTIME = settings.EXPECT_MAIN
13301330

13311331
# Note the exports the user requested
1332-
building.user_requested_exports = settings.EXPORTED_FUNCTIONS.copy()
1332+
building.user_requested_exports.update(settings.EXPORTED_FUNCTIONS)
13331333

13341334
def default_setting(name, new_default):
13351335
if name not in settings_map:
@@ -1729,8 +1729,8 @@ def default_setting(name, new_default):
17291729
# kept alive through DCE.
17301730
# TODO: Find a less hacky way to do this, perhaps by also scanning worker.js
17311731
# for roots.
1732-
building.user_requested_exports.append('_emscripten_tls_init')
1733-
building.user_requested_exports.append('_emscripten_current_thread_process_queued_calls')
1732+
building.user_requested_exports.add('_emscripten_tls_init')
1733+
building.user_requested_exports.add('_emscripten_current_thread_process_queued_calls')
17341734

17351735
# set location of worker.js
17361736
settings.PTHREAD_WORKER_FILE = unsuffixed(os.path.basename(target)) + '.worker.js'
@@ -1767,7 +1767,7 @@ def default_setting(name, new_default):
17671767
settings.EXPORTED_FUNCTIONS += ['_memalign']
17681768

17691769
if settings.MINIMAL_RUNTIME:
1770-
building.user_requested_exports += ['exit']
1770+
building.user_requested_exports.add('exit')
17711771

17721772
if settings.PROXY_TO_PTHREAD:
17731773
settings.EXPORTED_FUNCTIONS += ['_emscripten_proxy_main']

emscripten.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ def load_metadata_wasm(metadata_raw, DEBUG):
797797
unexpected_exports = [e for e in metadata['exports'] if treat_as_user_function(e)]
798798
unexpected_exports = [asmjs_mangle(e) for e in unexpected_exports]
799799
unexpected_exports = [e for e in unexpected_exports if e not in settings.EXPORTED_FUNCTIONS]
800-
building.user_requested_exports += unexpected_exports
800+
building.user_requested_exports.update(unexpected_exports)
801801

802802
return metadata
803803

tests/test_other.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10350,9 +10350,9 @@ def test_main_module_no_undefined(self):
1035010350
self.run_js('a.out.js')
1035110351

1035210352
@parameterized({
10353-
'main_module': ('-sRELOCATABLE',),
10353+
'relocatable': ('-sRELOCATABLE',),
1035410354
'linkable': ('-sLINKABLE',),
10355-
'relocatable': ('-sMAIN_MODULE',),
10355+
'main_module': ('-sMAIN_MODULE',),
1035610356
})
1035710357
def test_check_undefined(self, flag):
1035810358
# positive case: no undefined symbols

tools/building.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
ar_contents = {}
4646
_is_ar_cache = {}
4747
# the exports the user requested
48-
user_requested_exports = []
48+
user_requested_exports = set()
4949

5050

5151
class ObjectFileInfo:

0 commit comments

Comments
 (0)