[Bf-blender-cvs] [39ae4804a80] blender-v2.82-release: Fix T72789: Mantaflow cache doesn't work with non-latin cache directory

Sebastián Barschkis noreply at git.blender.org
Thu Jan 23 17:16:48 CET 2020


Commit: 39ae4804a80fe96472d8f3c269825ec82eeb90f7
Author: Sebastián Barschkis
Date:   Thu Jan 23 17:12:19 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB39ae4804a80fe96472d8f3c269825ec82eeb90f7

Fix T72789: Mantaflow cache doesn't work with non-latin cache directory

Root of the problem was that Manta's Python API was converting to and from Latin1 instead of UTF8.

===================================================================

M	extern/mantaflow/helper/pwrapper/pconvert.cpp

===================================================================

diff --git a/extern/mantaflow/helper/pwrapper/pconvert.cpp b/extern/mantaflow/helper/pwrapper/pconvert.cpp
index c8c92cbf585..9ada75519fc 100644
--- a/extern/mantaflow/helper/pwrapper/pconvert.cpp
+++ b/extern/mantaflow/helper/pwrapper/pconvert.cpp
@@ -144,7 +144,12 @@ template<> int fromPy<int>(PyObject *obj)
 template<> string fromPy<string>(PyObject *obj)
 {
   if (PyUnicode_Check(obj))
+#ifdef BLENDER
+    // Blender is completely UTF-8 based
+    return PyBytes_AsString(PyUnicode_AsUTF8String(obj));
+#else
     return PyBytes_AsString(PyUnicode_AsLatin1String(obj));
+#endif
 #if PY_MAJOR_VERSION <= 2
   else if (PyString_Check(obj))
     return PyString_AsString(obj);
@@ -155,7 +160,12 @@ template<> string fromPy<string>(PyObject *obj)
 template<> const char *fromPy<const char *>(PyObject *obj)
 {
   if (PyUnicode_Check(obj))
+#ifdef BLENDER
+    // Blender is completely UTF-8 based
+    return PyBytes_AsString(PyUnicode_AsUTF8String(obj));
+#else
     return PyBytes_AsString(PyUnicode_AsLatin1String(obj));
+#endif
 #if PY_MAJOR_VERSION <= 2
   else if (PyString_Check(obj))
     return PyString_AsString(obj);



More information about the Bf-blender-cvs mailing list