krgauthi / Broids

3 stars 2 forks source link

Game crashes if you open and close gamescreen huge memory leak somewhere #93

Closed krgauthi closed 11 years ago

krgauthi commented 11 years ago

Single Single Single Single Single Single Single Single Single Single

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000069264640, pid=6048, tid=4840

JRE version: 7.0_03-b05

Java VM: Java HotSpot(TM) 64-Bit Server VM (22.1-b02 mixed mode windows-amd64 compressed oops)

Problematic frame:

C [atio6axx.dll+0x234640]

Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

An error report file with more information is saved as:

C:\Users\Kris\Documents\GitHub\Broids\Broderoids-desktop\hs_err_pid6048.log

If you would like to submit a bug report, please visit:

http://bugreport.sun.com/bugreport/crash.jsp

The crash happened outside the Java Virtual Machine in native code.

See problematic frame for where to report the bug.

AL lib: ReleaseALC: 1 device not closed

Open and close a single player game 10 times

krgauthi commented 11 years ago

this is because java runs garbage collecting and destroys the world object which is keeping references to all the old entities

for some reason I have not been able to dispose of world without getting this error I need to look into it more but its defenatly because we or java try to dispose of world

ejrinkus commented 11 years ago

If we instead instantiate CoreLogic as an object ONLY when we are starting a game (i.e. clicking single player, or hopping into a multiplayer match) then this should be fixed. That way we can destroy it when the game/match is left, and that will allow us to clean everything properly and have GC also work properly. Right now we are running initCore in the constructor of GameScreen, so all that stuff is being created before we need it, and making a reference to it that will never go away (which is why GC isn't working properly).

krgauthi commented 11 years ago

our texture manager and not having to re-make screens has help a lot I have not seen a crash due to memory error for a long time Im considering closing this issue