[Bf-blender-cvs] [59b77cd6884] blender-v2.93-release: Fix T89733: Py API: bpy.data.orphans_purge argument parsing

Yann Lanthony noreply at git.blender.org
Mon Jul 26 08:52:30 CEST 2021


Commit: 59b77cd68848e56461c36287eba713079135f071
Author: Yann Lanthony
Date:   Thu Jul 22 12:46:54 2021 +0200
Branches: blender-v2.93-release
https://developer.blender.org/rB59b77cd68848e56461c36287eba713079135f071

Fix T89733: Py API: bpy.data.orphans_purge argument parsing

On Windows, using `bpy.data.orphans_purge` with some arguments (eg: `do_recursive=True`) does not produce the expected results. This is due to arguments not being parsed correctly on this platform with the current code.

The proposed fix is based on how other functions with boolean attributes are exposed to the Python API.

Reviewed By: #python_api, mont29

Maniphest Tasks: T89733

Differential Revision: https://developer.blender.org/D11963

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

M	source/blender/python/intern/bpy_rna_id_collection.c

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

diff --git a/source/blender/python/intern/bpy_rna_id_collection.c b/source/blender/python/intern/bpy_rna_id_collection.c
index d4127b26629..c5ae494fabd 100644
--- a/source/blender/python/intern/bpy_rna_id_collection.c
+++ b/source/blender/python/intern/bpy_rna_id_collection.c
@@ -377,9 +377,16 @@ static PyObject *bpy_orphans_purge(PyObject *UNUSED(self), PyObject *args, PyObj
   bool do_recursive_cleanup = false;
 
   static const char *_keywords[] = {"do_local_ids", "do_linked_ids", "do_recursive", NULL};
-  static _PyArg_Parser _parser = {"|$ppp:orphans_purge", _keywords, 0};
-  if (!_PyArg_ParseTupleAndKeywordsFast(
-          args, kwds, &_parser, &do_local_ids, &do_linked_ids, &do_recursive_cleanup)) {
+  static _PyArg_Parser _parser = {"|O&O&O&:orphans_purge", _keywords, 0};
+  if (!_PyArg_ParseTupleAndKeywordsFast(args,
+                                        kwds,
+                                        &_parser,
+                                        PyC_ParseBool,
+                                        &do_local_ids,
+                                        PyC_ParseBool,
+                                        &do_linked_ids,
+                                        PyC_ParseBool,
+                                        &do_recursive_cleanup)) {
     return NULL;
   }



More information about the Bf-blender-cvs mailing list