Delete all 'FrameTag's in ~FrameTags

This commit is contained in:
David Capello 2015-03-10 19:28:21 -03:00
parent 4588579e25
commit a504ba3783
4 changed files with 15 additions and 1 deletions

View File

@ -25,9 +25,13 @@ FrameTag::FrameTag(frame_t from, frame_t to)
{
}
void FrameTag::setOwner(FrameTags* owner)
FrameTag::~FrameTag()
{
ASSERT(!m_owner);
}
void FrameTag::setOwner(FrameTags* owner)
{
m_owner = owner;
}

View File

@ -22,6 +22,7 @@ namespace doc {
class FrameTag : public Object {
public:
FrameTag(frame_t from, frame_t to);
~FrameTag();
FrameTags* owner() const { return m_owner; }
frame_t fromFrame() const { return m_from; }

View File

@ -21,6 +21,14 @@ FrameTags::FrameTags(Sprite* sprite)
{
}
FrameTags::~FrameTags()
{
for (FrameTag* tag : m_tags) {
tag->setOwner(nullptr);
delete tag;
}
}
void FrameTags::add(FrameTag* tag)
{
auto it = begin(), end = this->end();

View File

@ -26,6 +26,7 @@ namespace doc {
typedef List::const_iterator const_iterator;
FrameTags(Sprite* sprite);
~FrameTags();
Sprite* sprite() { return m_sprite; }