Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-05-05 06:46:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-05-05 06:46:58 +0300
commit75be3bc4b940a9026a52be2024ec09b4dee4d937 (patch)
tree7324d304ce04bb3bfdd60f31ad91e864051cbe0b /intern/cycles/blender
parent375a50dad9c5829e2ed205216e0bb7317635868e (diff)
parentac6be6759ecc6c6503e8785ee405c003e0ca2fe5 (diff)
Merge branch 'blender-v2.83-release'
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r--intern/cycles/blender/blender_python.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 89bcebda193..8c7c0bc1daa 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -60,6 +60,12 @@ void *pylong_as_voidptr_typesafe(PyObject *object)
return PyLong_AsVoidPtr(object);
}
+PyObject *pyunicode_from_string(const char *str)
+{
+ /* Ignore errors if device API returns invalid UTF-8 strings. */
+ return PyUnicode_DecodeUTF8(str, strlen(str), "ignore");
+}
+
/* Synchronize debug flags from a given Blender scene.
* Return truth when device list needs invalidation.
*/
@@ -429,9 +435,9 @@ static PyObject *available_devices_func(PyObject * /*self*/, PyObject *args)
DeviceInfo &device = devices[i];
string type_name = Device::string_from_type(device.type);
PyObject *device_tuple = PyTuple_New(3);
- PyTuple_SET_ITEM(device_tuple, 0, PyUnicode_FromString(device.description.c_str()));
- PyTuple_SET_ITEM(device_tuple, 1, PyUnicode_FromString(type_name.c_str()));
- PyTuple_SET_ITEM(device_tuple, 2, PyUnicode_FromString(device.id.c_str()));
+ PyTuple_SET_ITEM(device_tuple, 0, pyunicode_from_string(device.description.c_str()));
+ PyTuple_SET_ITEM(device_tuple, 1, pyunicode_from_string(type_name.c_str()));
+ PyTuple_SET_ITEM(device_tuple, 2, pyunicode_from_string(device.id.c_str()));
PyTuple_SET_ITEM(ret, i, device_tuple);
}
@@ -642,7 +648,7 @@ static PyObject *osl_compile_func(PyObject * /*self*/, PyObject *args)
static PyObject *system_info_func(PyObject * /*self*/, PyObject * /*value*/)
{
string system_info = Device::device_capabilities();
- return PyUnicode_FromString(system_info.c_str());
+ return pyunicode_from_string(system_info.c_str());
}
#ifdef WITH_OPENCL