diff options
author | Richard Antalik <richardantalik@gmail.com> | 2020-01-22 15:41:43 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2020-01-22 15:41:43 +0300 |
commit | d51760dc5ade1b0104ae9d537c137545957d1fb6 (patch) | |
tree | 1538a4c66515bdaa09f78482e3a18d7e6de03d36 /intern | |
parent | 4099ad1984a6410652bdfdc27efc61256807e9af (diff) | |
parent | a60a623a1ac5416a6c07b4e8c038d603735a0061 (diff) |
Merge branch 'blender-v2.82-release'
Diffstat (limited to 'intern')
-rw-r--r-- | intern/mantaflow/intern/MANTA_main.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp index 79363126aff..05e6999c193 100644 --- a/intern/mantaflow/intern/MANTA_main.cpp +++ b/intern/mantaflow/intern/MANTA_main.cpp @@ -2057,7 +2057,10 @@ static char *pyObjectToString(PyObject *inputObject) PyObject *encoded = PyUnicode_AsUTF8String(inputObject); char *result = PyBytes_AsString(encoded); - Py_DECREF(encoded); + + /* Do not decref (i.e. Py_DECREF(encoded)) of string 'encoded' PyObject. + * Otherwise those objects will be invalidated too early (see T72894). + * Reference count of those Python objects will be decreased with 'del' in Python scripts. */ Py_DECREF(inputObject); PyGILState_Release(gilstate); @@ -2566,6 +2569,8 @@ void MANTA::updatePointers() pyObjectToString(callPythonFunction("y_guidevel" + solver_ext, func))); mGuideVelocityZ = (float *)stringToPointer( pyObjectToString(callPythonFunction("z_guidevel" + solver_ext, func))); + mNumGuide = (float *)stringToPointer( + pyObjectToString(callPythonFunction("numGuides" + solver_ext, func))); } if (mUsingInvel) { mInVelocityX = (float *)stringToPointer( @@ -2574,8 +2579,6 @@ void MANTA::updatePointers() pyObjectToString(callPythonFunction("y_invel" + solver_ext, func))); mInVelocityZ = (float *)stringToPointer( pyObjectToString(callPythonFunction("z_invel" + solver_ext, func))); - mNumGuide = (float *)stringToPointer( - pyObjectToString(callPythonFunction("numGuides" + solver_ext, func))); } if (mUsingSmoke) { mDensity = (float *)stringToPointer( |