File tree Expand file tree Collapse file tree 5 files changed +17
-7
lines changed
Expand file tree Collapse file tree 5 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,6 @@ class ENGINE_EXPORT Resource : public Object {
2828public:
2929 Resource ();
3030 Resource (const Resource &origin);
31- ~Resource () override ;
3231
3332 State state () const ;
3433
Original file line number Diff line number Diff line change @@ -54,6 +54,8 @@ class ENGINE_EXPORT ResourceSystem : public System {
5454
5555 void processState (Resource *resource);
5656
57+ void removeObject (Object *object) override ;
58+
5759private:
5860 ResourceSystem::Dictionary m_indexMap;
5961
Original file line number Diff line number Diff line change @@ -181,6 +181,15 @@ Engine::Engine(const char *path) {
181181Engine::~Engine () {
182182 PROFILE_FUNCTION ();
183183
184+ for (auto it : m_serial) {
185+ delete it;
186+ }
187+
188+ for (auto it : m_pool) {
189+ delete it->m_system ;
190+ delete it;
191+ }
192+
184193 delete m_threadPool;
185194
186195 if (m_platform) {
Original file line number Diff line number Diff line change @@ -48,12 +48,6 @@ Resource::Resource(const Resource &origin) :
4848 m_referenceCount(origin.m_referenceCount) {
4949
5050}
51-
52- Resource::~Resource () {
53- // assert(m_referenceCount == 0);
54-
55- Engine::resourceSystem ()->deleteFromCahe (this );
56- }
5751/* !
5852 Subscribes \a callback for \a object to handle resource status.
5953 Increases reference count.
Original file line number Diff line number Diff line change @@ -281,6 +281,12 @@ void ResourceSystem::processState(Resource *resource) {
281281 }
282282}
283283
284+ void ResourceSystem::removeObject (Object *object) {
285+ ObjectSystem::removeObject (object);
286+
287+ deleteFromCahe (static_cast <Resource *>(object));
288+ }
289+
284290Resource *ResourceSystem::resource (TString &path) const {
285291 {
286292 auto it = m_indexMap.find (path);
You can’t perform that action at this time.
0 commit comments