diff options
Diffstat (limited to 'src/engine/GarbageCollector.cpp')
| -rw-r--r-- | src/engine/GarbageCollector.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/engine/GarbageCollector.cpp b/src/engine/GarbageCollector.cpp index 926620fe1..9832aa29d 100644 --- a/src/engine/GarbageCollector.cpp +++ b/src/engine/GarbageCollector.cpp @@ -4,6 +4,7 @@ void RunGarbageCollector() { //CleanActors(); CleanObjects(); + CleanStaticMeshActors(); } void CleanActors() { @@ -18,14 +19,27 @@ void CleanActors() { // } } +void CleanStaticMeshActors() { + for (auto actor = gWorldInstance.StaticMeshActors.begin(); actor != gWorldInstance.StaticMeshActors.end();) { + StaticMeshActor* act = *actor; // Get a mutable copy + if (act->bPendingDestroy) { + delete act; + actor = gWorldInstance.StaticMeshActors.erase(actor); // Remove from container + continue; + } else { + actor++; + } + } +} + void CleanObjects() { for (auto object = gWorldInstance.Objects.begin(); object != gWorldInstance.Objects.end();) { OObject* obj = *object; // Get a mutable copy - if (obj->PendingDestroy) { + if (obj->bPendingDestroy) { delete obj; object = gWorldInstance.Objects.erase(object); // Remove from container continue; } object++; } -}
\ No newline at end of file +} |
