From 952b9b79a77f8885fdc463cd2bff9eac2e0bf2c7 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Feb 29 2020 11:15:52 +0000 Subject: fix bugs with iterators, thx to ice0 --- diff --git a/synfig-core/src/synfig/rendering/common/optimizer/optimizerblendassociative.cpp b/synfig-core/src/synfig/rendering/common/optimizer/optimizerblendassociative.cpp index 7d39c6e..e4555a7 100644 --- a/synfig-core/src/synfig/rendering/common/optimizer/optimizerblendassociative.cpp +++ b/synfig-core/src/synfig/rendering/common/optimizer/optimizerblendassociative.cpp @@ -115,7 +115,7 @@ OptimizerBlendAssociative::run(const RunParams& params) const new_list->sub_tasks.insert(new_list->sub_tasks.begin(), blend->sub_task_a()); for(Task::List::iterator i = new_list->sub_tasks.begin(); i != new_list->sub_tasks.end();) { - if (!*i) { i = list->sub_tasks.erase(i); continue; } + if (!*i) { i = new_list->sub_tasks.erase(i); continue; } if (!i->type_is()) if (TaskInterfaceBlendToTarget *interface = i->type_pointer()) if (!interface->blend) { diff --git a/synfig-studio/src/synfigapp/actions/layermove.cpp b/synfig-studio/src/synfigapp/actions/layermove.cpp index 11826c7..29a0ff9 100644 --- a/synfig-studio/src/synfigapp/actions/layermove.cpp +++ b/synfig-studio/src/synfigapp/actions/layermove.cpp @@ -156,16 +156,16 @@ Action::LayerMove::perform() dest_canvas=subcanvas; // Find the iterator for the layer - Canvas::iterator iter = subcanvas->find_index(layer, old_index); + Canvas::iterator iter = src_canvas->find_index(layer, old_index); if (*iter != layer) throw Error(_("This layer doesn't exist anymore.")); // synfig::info(__FILE__":%d: layer->count()=%d",__LINE__,layer.count()); - // If the subcanvas isn't the same as the canvas, + // If the src_canvas isn't the same as the canvas, // then it had better be an inline canvas. If not, // bail - //if(get_canvas()!=subcanvas && !subcanvas->is_inline()) + //if(get_canvas()!=src_canvas && !src_canvas->is_inline()) if(get_canvas()->get_root()!=dest_canvas->get_root() || get_canvas()->get_root()!=src_canvas->get_root()) throw Error(_("You cannot directly move layers across compositions"));