diff options
Diffstat (limited to 'src/resources')
-rw-r--r-- | src/resources/resourcemanager.cpp | 4 | ||||
-rw-r--r-- | src/resources/resourcemanager.h | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index c0fe01ca8..a86edbb6f 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -171,14 +171,14 @@ void ResourceManager::cleanUp(Resource *res) delete res; } -void ResourceManager::cleanOrphans() +void ResourceManager::cleanOrphans(bool always) { timeval tv; gettimeofday(&tv, NULL); // Delete orphaned resources after 30 seconds. time_t oldest = tv.tv_sec, threshold = oldest - 30; - if (mOrphanedResources.empty() || mOldestOrphan >= threshold) + if (mOrphanedResources.empty() || (!always && mOldestOrphan >= threshold)) return; ResourceIterator iter = mOrphanedResources.begin(); diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h index 8d1070463..71cbdce62 100644 --- a/src/resources/resourcemanager.h +++ b/src/resources/resourcemanager.h @@ -248,13 +248,14 @@ class ResourceManager { return &mOrphanedResources; } #endif + void cleanOrphans(bool always = false); + private: /** * Deletes the resource after logging a cleanup message. */ static void cleanUp(Resource *resource); - void cleanOrphans(); static ResourceManager *instance; std::set<SDL_Surface*> deletedSurfaces; |