Commit: d3e2bc9fcb09ac5fccdd3a931f1cc10a1d22950c
Author: Campbell Barton
Date: Wed Apr 20 13:01:14 2022 +1000
Branches: draw-deferred-compilation-experiment
https://developer.blender.org/rBd3e2bc9fcb09ac5fccdd3a931f1cc10a1d22950c
Fix crash passing no arguments to Context.temp_override
===================================================================
M source/blender/python/intern/bpy_rna_context.c
===================================================================
diff --git a/source/blender/python/intern/bpy_rna_context.c
b/source/blender/python/intern/bpy_rna_context.c
index 085a8323cc1..811552ce938 100644
--- a/source/blender/python/intern/bpy_rna_context.c
+++ b/source/blender/python/intern/bpy_rna_context.c
@@ -208,10 +208,17 @@ static PyObject *bpy_context_temp_override(PyObject
*self, PyObject *args, PyObj
if (context_ptr == NULL) {
return NULL;
}
- /* Needed because the keywords copied into `kwds_parse` could contain
anything.
- * As the types of keys aren't checked. */
- if (!PyArg_ValidateKeywordArguments(kwds)) {
- return NULL;
+
+ if (kwds == NULL) {
+ /* While this is effectively NOP, support having no keywords as it's more
involved
+ * to return an alternative (dummy) context manager. */
+ }
+ else {
+ /* Needed because the keywords copied into `kwds_parse` could contain
anything.
+ * As the types of keys aren't checked. */
+ if (!PyArg_ValidateKeywordArguments(kwds)) {
+ return NULL;
+ }
}
struct {
@@ -235,7 +242,7 @@ static PyObject *bpy_context_temp_override(PyObject *self,
PyObject *args, PyObj
0,
};
/* Parse known keywords, the remaining keywords are set using
#CTX_py_state_push. */
- kwds = PyDict_Copy(kwds);
+ kwds = kwds ? PyDict_Copy(kwds) : PyDict_New();
{
PyObject *kwds_parse =
bpy_context_temp_override_extract_known_args(_keywords, kwds);
const int parse_result = _PyArg_ParseTupleAndKeywordsFast(args,
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs