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:
authorYann Lanthony <yann-lty>2021-07-22 13:46:54 +0300
committerBastien Montagne <bastien@blender.org>2021-07-22 13:52:37 +0300
commit574995478aca96d524fe2f34d555d3de64c0697e (patch)
tree84bde4e0cba2d09e063df9f1ab97d8cbb887d4e0 /source/blender/python
parent57668d84cf17d5e883bdfe9ec584c0683d8db860 (diff)
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
Diffstat (limited to 'source/blender/python')
-rw-r--r--source/blender/python/intern/bpy_rna_id_collection.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/python/intern/bpy_rna_id_collection.c b/source/blender/python/intern/bpy_rna_id_collection.c
index 66044311321..1bb68babc3c 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;
}