Fix 1814151: "Add a layer inside an exported canvas crash". Check the return value...
[synfig.git] / synfig-studio / trunk / src / gtkmm / state_star.cpp
index 64bacd9..8b5c14f 100644 (file)
@@ -634,6 +634,12 @@ StateStar_Context::make_star(const Point& _p1, const Point& _p2)
        if (get_layer_star_flag())
        {
                layer=get_canvas_interface()->add_layer_to("star",canvas,depth);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
 
                layer->set_param("origin",p1);
@@ -707,7 +713,12 @@ StateStar_Context::make_star(const Point& _p1, const Point& _p2)
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("curve_gradient",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Gradient"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -771,7 +782,12 @@ StateStar_Context::make_star(const Point& _p1, const Point& _p2)
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("plant",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Plant"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -835,7 +851,12 @@ StateStar_Context::make_star(const Point& _p1, const Point& _p2)
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("region",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Region"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -908,7 +929,12 @@ StateStar_Context::make_star(const Point& _p1, const Point& _p2)
        if (get_layer_outline_flag())
        {
                Layer::Handle layer(get_canvas_interface()->add_layer_to("outline",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Outline"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());