Смотрю пример undo/redo из примеров qt.И вот что заметил: DiagramItem никогда не удаляются. Это приводит к утечкам памяти. Добавили сто итемов на, сделали сто откатов, добавили ещё один. Всё, сто итемов повисли в памяти.Почему возник этот вопрос. Я реализую undo/redo. При изменении свойств объекта в стеке команд я сохраняю адрес объекта и что поменялось. При удалении объекта я его удаляю физически (delete). Т.е. адрес в стеке становится невалидным. Вот и решил посмотреть как решают эту проблему в примерах Qt. А они оказываются мухлюют - не удаляют объект физически.А как Вы решаете эту проблему? Или может знаете где посмотреть.
|