Fish
10-11-2008 02:40:04
Greetings!
The new MemoryTracker feature in Ogre 1.6.0 is asserting when Caelum attempts to release materials in FlatCloudLayer::~FlatCloudLayer(). The relevant line is:
Following is the call stack trace:
If I disable MemoryTracker there is no assert thrown, of course.
OS: WinXP
Ogre: 1.6.0 pulled from trunk @ Rev 8157
Caelum: 0.4.0 pulled from trunk @ Rev 350
Compiler: MinGW
The new MemoryTracker feature in Ogre 1.6.0 is asserting when Caelum attempts to release materials in FlatCloudLayer::~FlatCloudLayer(). The relevant line is:
// Destroy material.
Ogre::MaterialManager::getSingletonPtr()->remove(mMaterial->getHandle());
Following is the call stack trace:
#0 69F67AD1 Ogre::MemoryTracker::_recordDealloc(this=0x6a4fc8a0, ptr=0x1704bf90) (OgreMain/src/OgreMemoryTracker.cpp:72)
#1 6A2817EE Ogre::StdAllocPolicy::deallocateBytes(ptr=0x1704bf90) (../include/OgreMemoryStdAlloc.h:70)
#3 69EF4139 Ogre::Image::~Image(this=0x1704bf90) (OgreMain/src/OgreImage.cpp:74)
#4 02EA5E68 std::auto_ptr<Ogre::Image>::~auto_ptr(this=0x170fa2c0) (C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:260)
#5 02E44814 Caelum::FlatCloudLayer::~FlatCloudLayer(this=0x170fa288) (Caelum/src/FlatCloudLayer.cpp:104)
#6 02E3A577 Caelum::CloudSystem::clearLayers(this=0x1704afa8) (Caelum/src/CloudSystem.cpp:52)
#7 02E3A6AC Caelum::CloudSystem::~CloudSystem(this=0x1704afa8) (Caelum/src/CloudSystem.cpp:59)
#8 02EA5ECB std::auto_ptr<Caelum::CloudSystem>::reset(this=0x170bc370, __p=0x0) (C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:334)
#9 02E75C7D Caelum::CaelumSystem::setCloudSystem(this=0x170bc2e0, value=0x0) (../include/CaelumSystem.h:426)
#10 02E342C1 Caelum::CaelumSystem::destroySubcomponents(this=0x170bc2e0, destroyEverything=true) (Caelum/src/CaelumSystem.cpp:85)
#11 02E350FD Caelum::CaelumSystem::~CaelumSystem(this=0x170bc2e0) (Caelum/src/CaelumSystem.cpp:103)
#12 00405210 MMOnster::MMOnsterApplication::destroyCaelum(this=0x3cad418)
If I disable MemoryTracker there is no assert thrown, of course.
OS: WinXP
Ogre: 1.6.0 pulled from trunk @ Rev 8157
Caelum: 0.4.0 pulled from trunk @ Rev 350
Compiler: MinGW