[Bf-blender-cvs] [a818ad5a549] blender-v2.93-release: Fix memory leak with Python RNA property get callback errors

Campbell Barton noreply at git.blender.org
Mon Aug 9 08:42:32 CEST 2021


Commit: a818ad5a54984ce139c85fc0b6dfb9a97f18d877
Author: Campbell Barton
Date:   Wed Jul 28 01:07:14 2021 +1000
Branches: blender-v2.93-release
https://developer.blender.org/rBa818ad5a54984ce139c85fc0b6dfb9a97f18d877

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.

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

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

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

diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index e4e6b3ea8f2..2654a943d86 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -715,12 +715,8 @@ static void bpy_prop_boolean_array_get_fn(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) {
@@ -965,12 +961,8 @@ static void bpy_prop_int_array_get_fn(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) {
@@ -1215,12 +1207,8 @@ static void bpy_prop_float_array_get_fn(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) {



More information about the Bf-blender-cvs mailing list