From c1bfd014bd8fb4af1ee51ed0e2aaecb707c46ff2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 12:26:19 +0000 Subject: [PATCH] * rna: memory leak fix for RNA_property_enum_value() * rigify: generate root-most bones before children, this makes parenting to dynamically created bones work. --- release/scripts/modules/rigify/__init__.py | 2 +- release/scripts/modules/rigify/arm_biped_generic.py | 2 +- release/scripts/modules/rigify/palm_curl.py | 2 +- source/blender/makesrna/intern/rna_access.c | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/release/scripts/modules/rigify/__init__.py b/release/scripts/modules/rigify/__init__.py index 6ec90015d61..3cef288f79e 100644 --- a/release/scripts/modules/rigify/__init__.py +++ b/release/scripts/modules/rigify/__init__.py @@ -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: diff --git a/release/scripts/modules/rigify/arm_biped_generic.py b/release/scripts/modules/rigify/arm_biped_generic.py index a9b5e62775e..33fbb8577cf 100644 --- a/release/scripts/modules/rigify/arm_biped_generic.py +++ b/release/scripts/modules/rigify/arm_biped_generic.py @@ -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) diff --git a/release/scripts/modules/rigify/palm_curl.py b/release/scripts/modules/rigify/palm_curl.py index 4ad0cfe3675..5a06d2451ee 100644 --- a/release/scripts/modules/rigify/palm_curl.py +++ b/release/scripts/modules/rigify/palm_curl.py @@ -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 diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 7bfb6d7249f..68499ebd42c 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -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)