diff --git a/src/gui/editing.cpp b/src/gui/editing.cpp index abce533a9..183560191 100644 --- a/src/gui/editing.cpp +++ b/src/gui/editing.cpp @@ -104,7 +104,7 @@ void FurnaceGUI::prepareUndo(ActionType action, UndoRegion region) { auto it=oldPatMap.find(id); if (it==oldPatMap.end()) { p=oldPatMap[id]=new DivPattern; - logV("oldPatMap: allocating for %.4x",id); + //logV("oldPatMap: allocating for %.4x",id); } else { p=it->second; } @@ -249,6 +249,12 @@ void FurnaceGUI::makeUndo(ActionType action, UndoRegion region) { if (shallWalk) { e->walkSong(loopOrder,loopRow,loopEnd); } + + // garbage collection + for (std::pair i: oldPatMap) { + delete i.second; + } + oldPatMap.clear(); } void FurnaceGUI::doSelectAll() {