aboutsummaryrefslogtreecommitdiffstats
path: root/testing/blender/python-3.8.patch
blob: c26934e3447078ae0a411e8e2bbebb348454f561 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Index: blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
===================================================================
--- blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
+++ blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
@@ -717,9 +717,11 @@
  ****************************************************************************/
 PyObject *PyC_DefaultNameSpace(const char *filename)
 {
-  PyInterpreterState *interp = PyThreadState_GET()->interp;
+  PyObject *modules = PyImport_GetModuleDict();
+  PyObject *builtins = PyDict_GetItemString(modules, "builtins");
+
   PyObject *mod_main = PyModule_New("__main__");
-  PyDict_SetItemString(interp->modules, "__main__", mod_main);
+  PyDict_SetItemString(modules, "__main__", mod_main);
   Py_DECREF(mod_main); /* sys.modules owns now */
   PyModule_AddStringConstant(mod_main, "__name__", "__main__");
   if (filename) {
@@ -727,8 +729,8 @@
      * note: this wont map to a real file when executing text-blocks and buttons. */
     PyModule_AddObject(mod_main, "__file__", PyC_UnicodeFromByte(filename));
   }
-  PyModule_AddObject(mod_main, "__builtins__", interp->builtins);
-  Py_INCREF(interp->builtins); /* AddObject steals a reference */
+  PyModule_AddObject(mod_main, "__builtins__", builtins);
+  Py_INCREF(builtins); /* AddObject steals a reference */
   return PyModule_GetDict(mod_main);
 }
 
@@ -755,15 +757,15 @@
 /* restore MUST be called after this */
 void PyC_MainModule_Backup(PyObject **main_mod)
 {
-  PyInterpreterState *interp = PyThreadState_GET()->interp;
-  *main_mod = PyDict_GetItemString(interp->modules, "__main__");
+  PyObject *modules = PyImport_GetModuleDict();
+  *main_mod = PyDict_GetItemString(modules, "__main__");
   Py_XINCREF(*main_mod); /* don't free */
 }
 
 void PyC_MainModule_Restore(PyObject *main_mod)
 {
-  PyInterpreterState *interp = PyThreadState_GET()->interp;
-  PyDict_SetItemString(interp->modules, "__main__", main_mod);
+  PyObject *modules = PyImport_GetModuleDict();
+  PyDict_SetItemString(modules, "__main__", main_mod);
   Py_XDECREF(main_mod);
 }