[E] IPR: Invalid pointer read in Account::getSimObj(void)const {1 occurrence} Reading 4 bytes from 0x15db032c (4 bytes at 0x15db032c illegal) Address 0x15db032c points into a committed region of virtual memory Thread ID: 0xc48 ERROR LOCATION: Account::getSimObj(void)const [c:\riverware\staff\philw\dev1\accounting\account.hpp:815] CallbackReceiver::_helpAccountCallbacks(CallbackType,bool,RootSelection const*) [c:\riverware\staff\philw\dev1\sim\callbackreceiver.cpp:438] CallbackReceiver::_removeAccountCallbacks(CallbackType,RootSelection const*) [c:\riverware\staff\philw\dev1\sim\callbackreceiver.cpp:458] AccountGroup::_removeCallbacks(void) [c:\riverware\staff\philw\dev1\sim\accountgroup.cpp:164] AccountGroup::~AccountGroup(void) [c:\riverware\staff\philw\dev1\sim\accountgroup.cpp:169] AccountGroup::`scalar deleting destructor'(UINT) [C:\RiverWare\staff\philw\dev1\EngrObjs\Debug\riverware.exe] RootGroupMgr::clearGroups(void) [c:\riverware\staff\philw\dev1\sim\rootgroupmgr.cpp:726] SimWorkspace::clear(bool) [c:\riverware\staff\philw\dev1\sim\simws.cpp:571] exitOK [c:\riverware\staff\philw\dev1\gui\exitrwgui.cpp:106] exitRWCmdFunction(void) [c:\riverware\staff\philw\dev1\gui\exitrwgui.cpp:179] ======================== [E] IPR: Invalid pointer read in Account::getSimObj(void)const {1 occurrence} Reading 4 bytes from 0x15db032c (4 bytes at 0x15db032c illegal) Address 0x15db032c points into a committed region of virtual memory Thread ID: 0xc48 Error location ------------------------------------------------ Account::getSimObj(void)const [c:\riverware\staff\philw\dev1\accounting\account.hpp:815] inline SimObj *Account::getSimObj() const { => return _simobj; } // set and return the account name ------------------------------------------------ CallbackReceiver::_helpAccountCallbacks(CallbackType,bool,RootSelection const*) [c:\riverware\staff\philw\dev1\sim\callbackreceiver.cpp:438] Account *account = sel1.elem(iter); // Put the SIMOBJ_ACCOUNT_DELETED callback on the // containing simobj. But don't do any duplicates. => SimObj *container = account->getSimObj(); if(add) { rwAssert(container); _addCxxCallback(container, t, ------------------------------------------------ CallbackReceiver::_removeAccountCallbacks(CallbackType,RootSelection const*) [c:\riverware\staff\philw\dev1\sim\callbackreceiver.cpp:458] void CallbackReceiver::_removeAccountCallbacks(CallbackType t, const RootSelection *slx) { => _helpAccountCallbacks(t, false, slx); } void CallbackReceiver::_helpSupplyCallbacks(CallbackType t, ------------------------------------------------ AccountGroup::_removeCallbacks(void) [c:\riverware\staff\philw\dev1\sim\accountgroup.cpp:164] recomputeSelections(false); // false-->don't update the callbacks as // that would put us into an infinite loop CallbackReceiver::_removeSimObjCallbacks(WS_OBJECT_REMOVED, selection1()); => CallbackReceiver::_removeAccountCallbacks(SIMOBJ_ACCOUNT_DELETED, selection1()); } AccountGroup::~AccountGroup() ------------------------------------------------ AccountGroup::~AccountGroup(void) [c:\riverware\staff\philw\dev1\sim\accountgroup.cpp:169] AccountGroup::~AccountGroup() { => _removeCallbacks(); } const cwSlist & AccountGroup::resolve(bool force) AccountGroup::`scalar deleting destructor'(UINT) [C:\RiverWare\staff\philw\dev1\EngrObjs\Debug\riverware.exe] ------------------------------------------------ RootGroupMgr::clearGroups(void) [c:\riverware\staff\philw\dev1\sim\rootgroupmgr.cpp:726] list.replace(it,NULL); g->unresolve(); // delete the group. => delete g; } list.clear(); } ------------------------------------------------ SimWorkspace::clear(bool) [c:\riverware\staff\philw\dev1\sim\simws.cpp:571] POST(WSID_MGMT)(WSID_MGMT, MSG_WS_CLEAR ); callbackReceiverMgr.setClearingWS(true); => RootGroupMgr::Instance()->clearGroups(); rwSystem->callCallbacks(WS_CLEARING); ------------------------------------------------ exitOK [c:\riverware\staff\philw\dev1\gui\exitrwgui.cpp:106] // EXITCRASH - BRIAN #if 1 => rwWorkspace->clear(); qApp->processEvents(); #endif ------------------------------------------------ exitRWCmdFunction(void) [c:\riverware\staff\philw\dev1\gui\exitrwgui.cpp:179] ---