From 39ae4804a80fe96472d8f3c269825ec82eeb90f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Barschkis?= Date: Thu, 23 Jan 2020 17:12:19 +0100 Subject: 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. --- extern/mantaflow/helper/pwrapper/pconvert.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'extern/mantaflow') 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(PyObject *obj) template<> string fromPy(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(PyObject *obj) template<> const char *fromPy(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); -- cgit v1.2.3