Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Bug #800: DestroyAll <x> Bug ( Probably Simple )
Product:
TV3D SDK 6.5
Language:
Other
Current State:
New
Resolution:
Unconfirmed
Created On:
November 9th, 2007
Last Modified:
November 9th, 2007
Reported By:
sybixsus
I think it was either the latest build or the build before which introduced some extra "DestroyAll" functions. This appears to have broken all of the DestroyAll functions.

If you run any of these functions ( DestroyAllMeshes, DestroyAlLActors, DestroyAllTextures, etc ) you get a crash.

Since it was ok until the latest build or two, I have to assume it's something which changed when the new functions were added ( like DestroyAllParticleSystems() ) and it's probably something simple because it happens across all of the different functions exactly the same.

Two little extra notes which may help pinpoint the bug.

Firstly, if you call DestroyAllMeshes() when there are no meshes left ( or DestroyAllActors when there are no actors ) then it does not crash.

Secondly, if you do *not* call DestroyAllMeshes() DestroyAllTextures() etc but there are textures or meshes left undestroyed, then the crash happens on Engine->ReleaseAll() instead. I assume this is because Engine->ReleaseAll calls those DestroyAll <x> functions internally anyway, but I thought should note it just the same.

Obviously, with good memory management, you should never have objects left undestroyed, but the functions are there for a reason and at the moment, they are broken, so I thought I should report it.

Comments:

Posted by Sarge on November 11th, 2007 at 2:00 PM
I'm getting this too.
Posted by Sarge on November 11th, 2007 at 2:07 PM
I fixed my problem, i was freeing the engine then freeing the scene, which doesn't make sense at all.

Scene->DestroyAllMeshes();
delete Scene;
Scene = NULL;

delete Engine;
Engine = NULL;

That works for me.

Thanks,
Sarge.
Posted by sybixsus on November 13th, 2007 at 3:25 PM
Unfortunately, that's not my issue. My code doesn't even get as far as where I destroy the scene, which I do before destroying the engine anyway.