Fix #34972: Blender crashes when Force Field-> Curve Guide is created
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Apr 2013 12:04:55 +0000 (12:04 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Apr 2013 12:04:55 +0000 (12:04 +0000)
Made it so where_on_path works correct when Curve does
have editNurbs but no Curve->nurbs.

source/blender/blenkernel/intern/anim.c

index c555b7de5d9bf3f871594b360702a76b7e2b4f91..6fa33e8d3c518739796abac7db7aa61153efed52 100644 (file)
@@ -626,6 +626,7 @@ int where_on_path(Object *ob, float ctime, float vec[4], float dir[3], float qua
        float fac;
        float data[4];
        int cycl = 0, s0, s1, s2, s3;
+       ListBase *nurbs;
 
        if (ob == NULL || ob->type != OB_CURVE) return 0;
        cu = ob->data;
@@ -668,8 +669,11 @@ int where_on_path(Object *ob, float ctime, float vec[4], float dir[3], float qua
        /* make compatible with vectoquat */
        negate_v3(dir);
        //}
-       
-       nu = cu->nurb.first;
+
+       nurbs = BKE_curve_editNurbs_get(cu);
+       if (!nurbs)
+               nurbs = &cu->nurb;
+       nu = nurbs->first;
 
        /* make sure that first and last frame are included in the vectors here  */
        if (nu->type == CU_POLY) key_curve_position_weights(1.0f - fac, data, KEY_LINEAR);