diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-07-27 18:07:14 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2021-08-02 09:18:59 +0300 |
commit | 1f96166e08a1fd613b827fcd2d3803cff50efbfb (patch) | |
tree | 4cbc3c8c9a2f06a6082aee6b2602dcfd9fd6eefa | |
parent | 66c65da6889823326829d432c8d86a833ea17043 (diff) |
Fix memory leak with Python RNA property get callback errors
Failure to return a list of the expected size & type wasn't
decrementing the value, leaking a reference.
Caused by 127b5423d6203d521acb2b96b7de5534e8dbe79a a workaround for the
real error that was fixed f5e020a7a6ad6451fcaf075ae14f7014b8a4faea.
-rw-r--r-- | source/blender/python/intern/bpy_props.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c index ade02780210..ed4d1a89fc8 100644 --- a/source/blender/python/intern/bpy_props.c +++ b/source/blender/python/intern/bpy_props.c @@ -494,12 +494,8 @@ static void bpy_prop_boolean_array_get_cb(struct PointerRNA *ptr, for (i = 0; i < len; i++) { values[i] = false; } - - /* PyC_AsArray decrements refcount internally on error */ - } - else { - Py_DECREF(ret); } + Py_DECREF(ret); } if (use_gil) { @@ -738,12 +734,8 @@ static void bpy_prop_int_array_get_cb(struct PointerRNA *ptr, for (i = 0; i < len; i++) { values[i] = 0; } - - /* PyC_AsArray decrements refcount internally on error */ - } - else { - Py_DECREF(ret); } + Py_DECREF(ret); } if (use_gil) { @@ -982,12 +974,8 @@ static void bpy_prop_float_array_get_cb(struct PointerRNA *ptr, for (i = 0; i < len; i++) { values[i] = 0.0f; } - - /* PyC_AsArray decrements refcount internally on error */ - } - else { - Py_DECREF(ret); } + Py_DECREF(ret); } if (use_gil) { |