]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106210 Remove Emscripten import trampoline (#106211)
authorHood Chatham <roberthoodchatham@gmail.com>
Fri, 30 Jun 2023 00:20:49 +0000 (17:20 -0700)
committerGitHub <noreply@github.com>
Fri, 30 Jun 2023 00:20:49 +0000 (17:20 -0700)
It's no longer necessary.

Co-authored-by: Brett Cannon <brett@python.org>
Misc/NEWS.d/next/Core and Builtins/2023-06-28-13-19-20.gh-issue-106210.oE7VMn.rst [new file with mode: 0644]
Python/import.c
Python/importdl.c
Python/importdl.h

diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-06-28-13-19-20.gh-issue-106210.oE7VMn.rst b/Misc/NEWS.d/next/Core and Builtins/2023-06-28-13-19-20.gh-issue-106210.oE7VMn.rst
new file mode 100644 (file)
index 0000000..fde549d
--- /dev/null
@@ -0,0 +1 @@
+Removed Emscripten import trampoline as it was no longer necessary for Pyodide.
index b3699bdec994d6cc872753aba3ec60bb521c6053..324fe3812bdd49fbf90c60affbba351d48c25815 100644 (file)
@@ -839,16 +839,6 @@ _PyImport_ClearExtension(PyObject *name, PyObject *filename)
 }
 
 
-/*******************/
-
-#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)
-#include <emscripten.h>
-EM_JS(PyObject*, _PyImport_InitFunc_TrampolineCall, (PyModInitFunction func), {
-    return wasmTable.get(func)();
-});
-#endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE
-
-
 /*****************************/
 /* single-phase init modules */
 /*****************************/
@@ -1285,7 +1275,7 @@ import_find_extension(PyThreadState *tstate, PyObject *name,
     else {
         if (def->m_base.m_init == NULL)
             return NULL;
-        mod = _PyImport_InitFunc_TrampolineCall(def->m_base.m_init);
+        mod = def->m_base.m_init();
         if (mod == NULL)
             return NULL;
         if (PyObject_SetItem(modules, name, mod) == -1) {
@@ -1400,7 +1390,7 @@ create_builtin(PyThreadState *tstate, PyObject *name, PyObject *spec)
                 /* Cannot re-init internal module ("sys" or "builtins") */
                 return import_add_module(tstate, name);
             }
-            mod = _PyImport_InitFunc_TrampolineCall(*p->initfunc);
+            mod = (*p->initfunc)();
             if (mod == NULL) {
                 return NULL;
             }
index 3a3a30ddbdcdb5c88ba560d916579872d36c9a29..eb6b808ecba1d5733e80a8e010b7339e445b55af 100644 (file)
@@ -166,7 +166,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
 
     /* Package context is needed for single-phase init */
     oldcontext = _PyImport_SwapPackageContext(newcontext);
-    m = _PyImport_InitFunc_TrampolineCall(p0);
+    m = p0();
     _PyImport_SwapPackageContext(oldcontext);
 
     if (m == NULL) {
index 26d18b626df05235350cb221951b764a47af6cc9..9171adc2770689a92184b52c2491209eba7b98a6 100644 (file)
@@ -12,12 +12,6 @@ extern PyObject *_PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *);
 
 typedef PyObject *(*PyModInitFunction)(void);
 
-#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)
-extern PyObject *_PyImport_InitFunc_TrampolineCall(PyModInitFunction func);
-#else
-#define _PyImport_InitFunc_TrampolineCall(func) (func)()
-#endif
-
 /* Max length of module suffix searched for -- accommodates "module.slb" */
 #define MAXSUFFIXSIZE 12