Commit: 094433faa95f449f7bb119958d323777196ae01d
Author: Bastien Montagne
Date:   Sat Aug 30 22:02:05 2014 +0200
Branches: master
https://developer.blender.org/rB094433faa95f449f7bb119958d323777196ae01d

Fix crash part of T41561: custom properties don't see in drivers windiw

Do not try to access ID_OB data from an ID_MA one (or anything else)!

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

M       source/blender/editors/space_graph/graph_buttons.c

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

diff --git a/source/blender/editors/space_graph/graph_buttons.c 
b/source/blender/editors/space_graph/graph_buttons.c
index d1738f3..b59030d 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -560,7 +560,7 @@ static void graph_panel_driverVar__rotDiff(uiLayout 
*layout, ID *id, DriverVar *
        uiLayoutSetRedAlert(col, (dtar->flag & DTAR_FLAG_INVALID)); /* XXX: per 
field... */
        uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", IFACE_("Bone 1:"));
        
-       if (dtar->id && ob1->pose) {
+       if (dtar->id && GS(dtar->id->name) == ID_OB && ob1->pose) {
                PointerRNA tar_ptr;
                
                RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr);
@@ -571,7 +571,7 @@ static void graph_panel_driverVar__rotDiff(uiLayout 
*layout, ID *id, DriverVar *
        uiLayoutSetRedAlert(col, (dtar2->flag & DTAR_FLAG_INVALID)); /* XXX: 
per field... */
        uiTemplateAnyID(col, &dtar2_ptr, "id", "id_type", IFACE_("Bone 2:"));
                
-       if (dtar2->id && ob2->pose) {
+       if (dtar2->id && GS(dtar2->id->name) == ID_OB && ob2->pose) {
                PointerRNA tar_ptr;
                
                RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr);
@@ -598,7 +598,7 @@ static void graph_panel_driverVar__locDiff(uiLayout 
*layout, ID *id, DriverVar *
        uiLayoutSetRedAlert(col, (dtar->flag & DTAR_FLAG_INVALID)); /* XXX: per 
field... */
        uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", IFACE_("Ob/Bone 1:"));
                
-       if (dtar->id && ob1->pose) {
+       if (dtar->id && GS(dtar->id->name) == ID_OB && ob1->pose) {
                PointerRNA tar_ptr;
                
                RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr);
@@ -612,7 +612,7 @@ static void graph_panel_driverVar__locDiff(uiLayout 
*layout, ID *id, DriverVar *
        uiLayoutSetRedAlert(col, (dtar2->flag & DTAR_FLAG_INVALID)); /* XXX: 
per field... */
        uiTemplateAnyID(col, &dtar2_ptr, "id", "id_type", IFACE_("Ob/Bone 2:"));
                
-       if (dtar2->id && ob2->pose) {
+       if (dtar2->id && GS(dtar2->id->name) == ID_OB && ob2->pose) {
                PointerRNA tar_ptr;
                
                RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr);
@@ -639,7 +639,7 @@ static void graph_panel_driverVar__transChan(uiLayout 
*layout, ID *id, DriverVar
        uiLayoutSetRedAlert(col, (dtar->flag & DTAR_FLAG_INVALID)); /* XXX: per 
field... */
        uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", IFACE_("Ob/Bone:"));
                
-       if (dtar->id && ob->pose) {
+       if (dtar->id && GS(dtar->id->name) == ID_OB && ob->pose) {
                PointerRNA tar_ptr;
                
                RNA_pointer_create(dtar->id, &RNA_Pose, ob->pose, &tar_ptr);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to