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
This commit is contained in:
Yann Lanthony 2021-07-22 12:46:54 +02:00 committed by Jeroen Bakker
parent 05ffe05ebc
commit 59b77cd688
Notes: blender-bot 2023-02-14 06:42:54 +01:00
Referenced by issue #88449, Blender LTS: Maintenance Task 2.93
Referenced by issue #89733, Py API: `bpy.data.orphans_purge` incorrect argument parsing
1 changed files with 10 additions and 3 deletions

View File

@ -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;
}