* rna: memory leak fix for RNA_property_enum_value()
authorCampbell Barton <ideasman42@gmail.com>
Sun, 13 Dec 2009 12:26:19 +0000 (12:26 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 13 Dec 2009 12:26:19 +0000 (12:26 +0000)
* rigify: generate root-most bones before children, this makes parenting to dynamically created bones work.

release/scripts/modules/rigify/__init__.py
release/scripts/modules/rigify/arm_biped_generic.py
release/scripts/modules/rigify/palm_curl.py
source/blender/makesrna/intern/rna_access.c

index 6ec90015d610bc62853b4fbbc2f3e271645b08a1..3cef288f79ec0c60332c4ebc9c0b1e61bff35abf 100644 (file)
@@ -211,7 +211,7 @@ def generate_rig(context, obj_orig, prefix="ORG-", META_DEF=True):
     # 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:
index a9b5e62775e841462c296158e720e7a756436bf6..33fbb8577cfab13ab406ce5aaf5b292fc8691501 100644 (file)
@@ -94,7 +94,7 @@ def metarig_definition(obj, orig_bone_name):
 
 
 def ik(obj, definitions, base_names, options):
-    print(options)
+
     arm = obj.data
     
     mt = bone_class_instance(obj, METARIG_NAMES)
index 4ad0cfe3675ead29a4cc4fc3ea7b86aed38aa10e..5a06d2451ee7cddc076ea50b49278171225eea3e 100644 (file)
@@ -225,7 +225,7 @@ def main(obj, bone_definition, base_names, options):
 
         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
index 7bfb6d7249f0a37ad11ea19fe19ae08a798e2624..68499ebd42c2ebec493196e59d0acaa45bb5e393 100644 (file)
@@ -946,22 +946,22 @@ void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, En
 
 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)