M src/main/net/dermetfan/kryonet/box2d/multiplayer/WorldHost.java +5 -1
@@ 19,6 19,7 @@ import com.badlogic.gdx.physics.box2d.Fi
import com.badlogic.gdx.physics.box2d.Joint;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.utils.Array;
+import com.badlogic.gdx.utils.Disposable;
import com.badlogic.gdx.utils.IntMap.Keys;
import com.badlogic.gdx.utils.PooledLinkedList;
import com.badlogic.gdx.utils.Pools;
@@ 277,7 278,10 @@ public class WorldHost extends Listener
acceptedProposals.iter();
Pair<UpdateProposal, Connection> pair = acceptedProposals.next();
while(pair != null) {
- updater.update(world, pair.getKey().getUpdate());
+ Update update = pair.getKey().getUpdate();
+ if(update instanceof Disposable)
+ ((Disposable) update).dispose();
+ updater.update(world, update);
pair = acceptedProposals.next();
}
}
M src/main/net/dermetfan/kryonet/box2d/multiplayer/packets/updates/FixtureCreation.java +8 -1
@@ 21,9 21,10 @@ import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoSerializable;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
+import com.sun.media.jfxmediaimpl.MediaDisposer.Disposable;
import net.dermetfan.kryo.serializers.FixtureDefSerializer;
-public class FixtureCreation extends Creation implements KryoSerializable {
+public class FixtureCreation extends Creation implements KryoSerializable, Disposable {
private int bodyHash;
@@ 54,6 55,12 @@ public class FixtureCreation extends Cre
fixtureDef = null;
}
+ /** disposes the shape of the {@link #fixtureDef} */
+ @Override
+ public void dispose() {
+ fixtureDef.shape.dispose();
+ }
+
// getters and setters
public int getBodyHash() {