From 79b027b024f5b8edf97a3056eeaead2317ff7a6e Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 14 Sep 2013 13:59:13 -0400 Subject: [PATCH] clean up some cases where pooled objects weren't being freed --- src/com/blarg/gdx/entities/EntityManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/blarg/gdx/entities/EntityManager.java b/src/com/blarg/gdx/entities/EntityManager.java index 2063556..fbc9e98 100644 --- a/src/com/blarg/gdx/entities/EntityManager.java +++ b/src/com/blarg/gdx/entities/EntityManager.java @@ -118,8 +118,10 @@ public class EntityManager implements Disposable { } public void removeAll() { - for (Entity i : entities) + for (Entity i : entities) { removeAllComponentsFrom(i); + entityPool.free(i); + } entities.clear(); } @@ -257,6 +259,9 @@ public class EntityManager implements Disposable { for (ObjectMap.Entry, ObjectMap> i : componentStore.entries()) { ObjectMap entitiesWithComponent = i.value; + Component component = entitiesWithComponent.get(entity); + if (component != null) + Pools.free(component); entitiesWithComponent.remove(entity); } }