[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25331] trunk/blender: * rna: memory leak fix for RNA_property_enum_value()

Campbell Barton ideasman42 at gmail.com
Sun Dec 13 13:26:19 CET 2009


Revision: 25331
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25331
Author:   campbellbarton
Date:     2009-12-13 13:26:19 +0100 (Sun, 13 Dec 2009)

Log Message:
-----------
* rna: memory leak fix for RNA_property_enum_value()
* rigify: generate root-most bones before children, this makes parenting to dynamically created bones work.

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rigify/__init__.py
    trunk/blender/release/scripts/modules/rigify/arm_biped_generic.py
    trunk/blender/release/scripts/modules/rigify/palm_curl.py
    trunk/blender/source/blender/makesrna/intern/rna_access.c

Modified: trunk/blender/release/scripts/modules/rigify/__init__.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify/__init__.py	2009-12-13 11:49:17 UTC (rev 25330)
+++ trunk/blender/release/scripts/modules/rigify/__init__.py	2009-12-13 12:26:19 UTC (rev 25331)
@@ -211,7 +211,7 @@
     # sort bones, not needed but gives more pradictable execution which may be useful in rare cases
     bones_sorted = obj.pose.bones.values()
     bones_sorted.sort(key=lambda pbone: pbone.name) # first sort by names
-    bones_sorted.sort(key=lambda pbone: - len(pbone.parent_recursive)) # children before parents
+    bones_sorted.sort(key=lambda pbone: len(pbone.parent_recursive)) # parents before children
 
     # now we have all the info about bones we can start operating on them
     # for pbone in obj.pose.bones:

Modified: trunk/blender/release/scripts/modules/rigify/arm_biped_generic.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify/arm_biped_generic.py	2009-12-13 11:49:17 UTC (rev 25330)
+++ trunk/blender/release/scripts/modules/rigify/arm_biped_generic.py	2009-12-13 12:26:19 UTC (rev 25331)
@@ -94,7 +94,7 @@
 
 
 def ik(obj, definitions, base_names, options):
-    print(options)
+
     arm = obj.data
     
     mt = bone_class_instance(obj, METARIG_NAMES)

Modified: trunk/blender/release/scripts/modules/rigify/palm_curl.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify/palm_curl.py	2009-12-13 11:49:17 UTC (rev 25330)
+++ trunk/blender/release/scripts/modules/rigify/palm_curl.py	2009-12-13 12:26:19 UTC (rev 25331)
@@ -225,7 +225,7 @@
 
         rel_vec = child_pbone_01.head - child_pbone_02.head
         x_vec = child_pbone_01.matrix.rotationPart() * Vector(1.0, 0.0, 0.0)
-        print(rel_vec, x_vec)
+
         return degrees(AngleBetweenVecs(rel_vec, x_vec)) > 90.0
 
     if x_direction(): # flip

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2009-12-13 11:49:17 UTC (rev 25330)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2009-12-13 12:26:19 UTC (rev 25331)
@@ -946,22 +946,22 @@
 
 int RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value)
 {	
-	EnumPropertyItem *item;
+	EnumPropertyItem *item, *item_array;
 	int free;
 	
-	RNA_property_enum_items(C, ptr, prop, &item, NULL, &free);
+	RNA_property_enum_items(C, ptr, prop, &item_array, NULL, &free);
 	
-	for(; item->identifier; item++) {
+	for(item= item_array; item->identifier; item++) {
 		if(item->identifier[0] && strcmp(item->identifier, identifier)==0) {
 			*value = item->value;
-			return 1;
+			break;
 		}
 	}
 
 	if(free)
-		MEM_freeN(item);
+		MEM_freeN(item_array);
 
-	return 0;
+	return (item->identifier) ? 1:0;
 }
 
 int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier)





More information about the Bf-blender-cvs mailing list