diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-02-13 18:00:11 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-02-14 09:08:37 +0100 |
commit | 6bab66f3651b44d33830f75c8836f0872d2b0676 (patch) | |
tree | 59c017d1e4fcfec0cf68d0c1dc5b25fdb7664123 /src | |
parent | 91ab54b6b638c9e803e484b5252db819ad3f5872 (diff) | |
download | mana-6bab66f3651b44d33830f75c8836f0872d2b0676.tar.gz mana-6bab66f3651b44d33830f75c8836f0872d2b0676.tar.bz2 mana-6bab66f3651b44d33830f75c8836f0872d2b0676.tar.xz mana-6bab66f3651b44d33830f75c8836f0872d2b0676.zip |
Fixed issue in ParticleContainer destructor
It was trying to call a virtual method for cleanup with the intention of
doing cleanup in its subclasses, but that doesn't work in a destructor.
Could simplify ActorSprite destructor as a result.
Diffstat (limited to 'src')
-rw-r--r-- | src/actorsprite.cpp | 4 | ||||
-rw-r--r-- | src/particlecontainer.cpp | 11 | ||||
-rw-r--r-- | src/particlecontainer.h | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/actorsprite.cpp b/src/actorsprite.cpp index 989de8d9..ae731305 100644 --- a/src/actorsprite.cpp +++ b/src/actorsprite.cpp @@ -52,10 +52,6 @@ ActorSprite::ActorSprite(int id): ActorSprite::~ActorSprite() { - setMap(nullptr); - - mUsedTargetCursor = nullptr; - // Notify listeners of the destruction. Event event(Event::Destroyed); event.setActor("source", this); diff --git a/src/particlecontainer.cpp b/src/particlecontainer.cpp index 60485c44..53742109 100644 --- a/src/particlecontainer.cpp +++ b/src/particlecontainer.cpp @@ -32,7 +32,6 @@ ParticleContainer::ParticleContainer(ParticleContainer *parent, ParticleContainer::~ParticleContainer() { - clearLocally(); if (mDelParent) delete mNext; } @@ -56,7 +55,10 @@ ParticleList::ParticleList(ParticleContainer *parent, bool delParent): ParticleContainer(parent, delParent) {} -ParticleList::~ParticleList() = default; +ParticleList::~ParticleList() +{ + clearLocally(); +} void ParticleList::addLocally(Particle *particle) { @@ -114,7 +116,10 @@ ParticleVector::ParticleVector(ParticleContainer *parent, bool delParent): ParticleContainer(parent, delParent) {} -ParticleVector::~ParticleVector() = default; +ParticleVector::~ParticleVector() +{ + clearLocally(); +} void ParticleVector::setLocally(int index, Particle *particle) { diff --git a/src/particlecontainer.h b/src/particlecontainer.h index 5656a7fd..519553ab 100644 --- a/src/particlecontainer.h +++ b/src/particlecontainer.h @@ -51,7 +51,7 @@ public: /** * Kills and removes all particle effects (only in this container) */ - virtual void clearLocally() {} + virtual void clearLocally() = 0; /** * Sets the positions of all elements |