Merge branch 'blender-v2.92-release'
This commit is contained in:
commit
e6a5e33c09
|
@ -450,6 +450,13 @@ void BPY_python_start(bContext *C, int argc, const char **argv)
|
|||
py_tstate = PyGILState_GetThisThreadState();
|
||||
PyEval_ReleaseThread(py_tstate);
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PYTHON_MODULE
|
||||
/* Disable all add-ons at exit, not essential, it just avoids resource leaks, see T71362. */
|
||||
BPY_run_string_eval(C,
|
||||
(const char *[]){"atexit", "addon_utils", NULL},
|
||||
"atexit.register(addon_utils.disable_all)");
|
||||
#endif
|
||||
}
|
||||
|
||||
void BPY_python_end(void)
|
||||
|
|
|
@ -168,6 +168,9 @@ if(WITH_PYTHON)
|
|||
../python
|
||||
)
|
||||
add_definitions(-DWITH_PYTHON)
|
||||
if(WITH_PYTHON_MODULE)
|
||||
add_definitions(-DWITH_PYTHON_MODULE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_BUILDINFO)
|
||||
|
|
|
@ -523,11 +523,15 @@ void WM_exit_ex(bContext *C, const bool do_python)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
#if defined(WITH_PYTHON) && !defined(WITH_PYTHON_MODULE)
|
||||
/* Without this, we there isn't a good way to manage false-positive resource leaks
|
||||
* where a #PyObject references memory allocated with guarded-alloc, T71362.
|
||||
*
|
||||
* This allows add-ons to free resources when unregistered (which is good practice anyway). */
|
||||
* This allows add-ons to free resources when unregistered (which is good practice anyway).
|
||||
*
|
||||
* Don't run this code when built as a Python module as this runs when Python is in the
|
||||
* process of shutting down, where running a snippet like this will crash, see T82675.
|
||||
* Instead use the `atexit` module, installed by #BPY_python_start */
|
||||
BPY_run_string_eval(C, (const char *[]){"addon_utils", NULL}, "addon_utils.disable_all()");
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue