From de7a33881b3f20cf29a36175831409411ff8fe56 Mon Sep 17 00:00:00 2001 From: Jérémy Zurcher Date: Wed, 18 Feb 2015 12:34:16 +0100 Subject: Board: clear Move and Path Pool at dispose --- core/src/ch/asynk/tankontank/engine/Board.java | 2 ++ core/src/ch/asynk/tankontank/engine/Move.java | 8 ++++++- core/src/ch/asynk/tankontank/engine/Path.java | 33 +++++++++++++++----------- 3 files changed, 28 insertions(+), 15 deletions(-) (limited to 'core/src/ch/asynk/tankontank/engine') diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index a097454d..764fccdf 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -131,6 +131,8 @@ public abstract class Board implements Disposable, Animation animations.clear(); if (selectedTile != null) selectedTile.dispose(); + Move.clearPool(); + Path.clearPool(); } public float getWidth() diff --git a/core/src/ch/asynk/tankontank/engine/Move.java b/core/src/ch/asynk/tankontank/engine/Move.java index 16a0860b..2f0c1389 100644 --- a/core/src/ch/asynk/tankontank/engine/Move.java +++ b/core/src/ch/asynk/tankontank/engine/Move.java @@ -15,7 +15,8 @@ public class Move extends Path implements Iterable EXIT; } - private static final Pool movePool = new Pool() { + private static final Pool movePool = new Pool() + { @Override protected Move newObject() { return new Move(); @@ -42,6 +43,11 @@ public class Move extends Path implements Iterable return m; } + public static void clearPool() + { + movePool.clear(); + } + public static Move getEnter(Pawn pawn, Tile to, Orientation orientation) { Move m = get(pawn, null, to, orientation, null); diff --git a/core/src/ch/asynk/tankontank/engine/Path.java b/core/src/ch/asynk/tankontank/engine/Path.java index 393a0a54..8ed7f8d4 100644 --- a/core/src/ch/asynk/tankontank/engine/Path.java +++ b/core/src/ch/asynk/tankontank/engine/Path.java @@ -7,6 +7,25 @@ import com.badlogic.gdx.utils.Disposable; public class Path implements Disposable, Pool.Poolable { + private static final Pool pathPool = new Pool() { + @Override + protected Path newObject() { + return new Path(); + } + }; + + public static Path get(int size) + { + Path p = pathPool.obtain(); + p.init(size); + return p; + } + + public static void clearPool() + { + pathPool.clear(); + } + public int cost; public boolean roadMarch; public ArrayList tiles; @@ -40,18 +59,4 @@ public class Path implements Disposable, Pool.Poolable tiles.clear(); pathPool.free(this); } - - private static final Pool pathPool = new Pool() { - @Override - protected Path newObject() { - return new Path(); - } - }; - - public static Path get(int size) - { - Path p = pathPool.obtain(); - p.init(size); - return p; - } } -- cgit v1.2.3