texture curves were not initialized (causing crash), own regression from moving curve...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 29 Aug 2012 07:58:36 +0000 (07:58 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 29 Aug 2012 07:58:36 +0000 (07:58 +0000)
source/blender/nodes/intern/node_util.c
source/blender/nodes/intern/node_util.h
source/blender/nodes/shader/nodes/node_shader_curves.c
source/blender/nodes/texture/nodes/node_texture_curves.c

index 8f9214fa1b2018da8b04daf9e9f73ab309e69f1c..27258c45fe528ff27cf96936d27a3c2001828a8a 100644 (file)
@@ -73,6 +73,12 @@ void node_copy_standard_storage(bNode *orig_node, bNode *new_node)
        new_node->storage= MEM_dupallocN(orig_node->storage);
 }
 
+void *node_initexec_curves(bNode *node)
+{
+       curvemapping_initialize(node->storage);
+       return NULL;  /* unused return */
+}
+
 /**** Labels ****/
 
 const char *node_blend_label(bNode *node)
index 6f167e352622d4ef2054ec42f0342b31cf76694d..9f9caef14e2b084ae5b641e7968e01743dcfc3f6 100644 (file)
@@ -53,6 +53,7 @@ extern void node_free_standard_storage(struct bNode *node);
 
 extern void node_copy_curves(struct bNode *orig_node, struct bNode *new_node);
 extern void node_copy_standard_storage(struct bNode *orig_node, struct bNode *new_node);
+extern void *node_initexec_curves(struct bNode *node);
 
 /**** Labels ****/
 
index 8831b07d8a0327d9412ee7e74473ca1fce867a3d..83cb1d336284f0e52e36813e145959e239e4424b 100644 (file)
@@ -45,12 +45,6 @@ static bNodeSocketTemplate sh_node_curve_vec_out[]= {
        {       -1, 0, ""       }
 };
 
-static void *node_shader_initexec_curve(bNode *node)
-{
-       curvemapping_initialize(node->storage);
-       return NULL;  /* unused return */
-}
-
 static void node_shader_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
 {
        float vec[3];
@@ -86,7 +80,7 @@ void register_node_type_sh_curve_vec(bNodeTreeType *ttype)
        node_type_init(&ntype, node_shader_init_curve_vec);
        node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
        node_type_exec(&ntype, node_shader_exec_curve_vec);
-       node_type_exec_new(&ntype, node_shader_initexec_curve, NULL, NULL);  /* only for its initexec func */
+       node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL);  /* only for its initexec func */
        node_type_gpu(&ntype, gpu_shader_curve_vec);
 
        nodeRegisterType(ttype, &ntype);
@@ -144,7 +138,7 @@ void register_node_type_sh_curve_rgb(bNodeTreeType *ttype)
        node_type_init(&ntype, node_shader_init_curve_rgb);
        node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
        node_type_exec(&ntype, node_shader_exec_curve_rgb);
-       node_type_exec_new(&ntype, node_shader_initexec_curve, NULL, NULL);  /* only for its initexec func */
+       node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL);  /* only for its initexec func */
        node_type_gpu(&ntype, gpu_shader_curve_rgb);
 
        nodeRegisterType(ttype, &ntype);
index 543b39ec75e9c64b7be7d16bd0a7200fd4807c91..6ccb5e1e83fc464c6030bf05ea9f175aeebc2ec6 100644 (file)
@@ -77,6 +77,7 @@ void register_node_type_tex_curve_time(bNodeTreeType *ttype)
        node_type_init(&ntype, time_init);
        node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
        node_type_exec(&ntype, time_exec);
+       node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL);  /* only for its initexec func */
        
        nodeRegisterType(ttype, &ntype);
 }
@@ -121,6 +122,7 @@ void register_node_type_tex_curve_rgb(bNodeTreeType *ttype)
        node_type_init(&ntype, rgb_init);
        node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
        node_type_exec(&ntype, rgb_exec);
+       node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL);  /* only for its initexec func */
        
        nodeRegisterType(ttype, &ntype);
 }