Hello,
I have crash in my scene manager class with respect to shadow stages. I do not see what is wrong with my code. What I have done: SceneManager::ctor() { _internalRoot = Node::create(); _internalRoot->setCore(Group::create()); _internalRoot->addChild(_cartesianNode); _internalRoot->addChild(_switchNode); ... _shadowStage = ShadowStage::create(); _shadowStage->setMapSize(glMan.iShadowMapSize()); _shadowStage->setShadowMode(mode); ... _internalRoot->setCore(_shadowStage); } SceneManager::dtor() { _internalRoot->setCore(NULL); _shadowStage = NULL; <--- crash on second scene manager destruction } My setup involves multiple SceneManager objects. On destruction of the second one I got the crash with the following call stack. OSGGroupD.dll!OSG::StageData::`vcall'{248}'() + 0x3 bytes C++ OSGGroupD.dll!boost::_mfi::mf3<void,OSG::StageData,OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>::operator()(OSG::StageData * p=0x0000000018789bb0, OSG::FieldContainer * a1=0x0000000011637b88, unsigned __int64 a2=0, unsigned int a3=1) Line 394 C++ OSGGroupD.dll!boost::_bi::list4<boost::_bi::value<OSG::StageData * __ptr64>,boost::arg<1>,boost::arg<2>,boost::arg<3> >::operator()<boost::_mfi::mf3<void,OSG::StageData,OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>,boost::_bi::list3<OSG::FieldContainer * __ptr64 & __ptr64,unsigned __int64 & __ptr64,unsigned int & __ptr64> >(boost::_bi::type<void> __formal={...}, boost::_mfi::mf3<void,OSG::StageData,OSG::FieldContainer *,unsigned __int64,unsigned int> & f={...}, boost::_bi::list3<OSG::FieldContainer * &,unsigned __int64 &,unsigned int &> & a={...}, boost::_bi::type<void> __formal={...}) Line 458 C++ OSGGroupD.dll!boost::_bi::bind_t<void,boost::_mfi::mf3<void,OSG::StageDa ta,OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>,boost::_bi::list4<boost::_bi::value<OSG::StageData * __ptr64>,boost::arg<1>,boost::arg<2>,boost::arg<3> > >::operator()<OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>(OSG::FieldContainer * & a1=0x0000000011637b88, unsigned __int64 & a2=0, unsigned int & a3=1) Line 117 C++ OSGGroupD.dll!boost::detail::function::void_function_obj_invoker3<boost: :_bi::bind_t<void,boost::_mfi::mf3<void,OSG::StageData,OSG::FieldContain er * __ptr64,unsigned __int64,unsigned int>,boost::_bi::list4<boost::_bi::value<OSG::StageData * __ptr64>,boost::arg<1>,boost::arg<2>,boost::arg<3> > >,void,OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>::invoke(boost::detail::function::function_buffer & function_obj_ptr={...}, OSG::FieldContainer * a0=0x0000000011637b88, unsigned __int64 a1=0, unsigned int a2=1) Line 154 C++ OSGBaseD.dll!boost::function3<void,OSG::FieldContainer * __ptr64,unsigned __int64,unsigned int>::operator()(OSG::FieldContainer * a0=0x0000000011637b88, unsigned __int64 a1=0, unsigned int a2=1) Line 761 C++ OSGBaseD.dll!OSG::FieldContainer::callChangedFunctors(const unsigned __int64 whichField=0, unsigned int origin=1) Line 83 C++ OSGBaseD.dll!OSG::FieldContainer::resolveLinks() Line 350 C++ OSGBaseD.dll!OSG::AttachmentContainer::resolveLinks() Line 482 C++ OSGBaseD.dll!OSG::NodeCoreBase::resolveLinks() Line 425 C++ OSGSystemD.dll!OSG::GroupBase::resolveLinks() Line 377 C++ OSGGroupD.dll!OSG::StageBase::resolveLinks() Line 552 C++ OSGEffectGroupsD.dll!OSG::ShadowStageBase::resolveLinks() Line 1966 C++ OSGBaseD.dll!OSG::FieldContainer::subReferenceUnrecorded() Line 458 C++ OSGBaseD.dll!OSG::UnrecordedRefCountPolicy::subRef(OSG::FieldContainer * const pObject=0x0000000011637b88) Line 113 C++ OSGBaseD.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onR eplace(OSG::PointerSFieldBase * const pSField=0x00000000114f93c8, OSG::FieldContainer * const pOldObj=0x0000000011637b88, OSG::FieldContainer * const pNewObj=0x0000000000000000) Line 172 C++ OSGBaseD.dll!OSG::PointerSFieldCommon<OSG::ChildAccessHandler<OSG::Unrec ordedRefCountPolicy>,1>::ptrStoreSet(OSG::FieldContainer * const pNewObj=0x0000000000000000) Line 109 C++ OSGBaseD.dll!OSG::ChildPointerSField<OSG::NodeCore * __ptr64,OSG::UnrecordedRefCountPolicy,1>::setValue(OSG::NodeCore * const value=0x0000000000000000) Line 110 C++ OSGBaseD.dll!OSG::Node::resolveLinks() Line 1010 C++ OSGBaseD.dll!OSG::FieldContainer::subReferenceRecorded() Line 376 C++ OSGBaseD.dll!OSG::RecordedRefCountPolicy::subRef(OSG::FieldContainer * const pObject=0x00000000114f92b8) Line 56 C++ RenderEngineD.dll!OSG::RecordedRefCountPolicy::setRefd<OSG::Node,OSG::No de>(OSG::Node * & pDest=0x00000000114f92b8, OSG::Node * pSource=0x0000000000000000) Line 65 C++ RenderEngineD.dll!OSG::RefCountPtr<OSG::Node,OSG::RecordedRefCountPolicy >::operator=(OSG::Node * const objectPtr=0x0000000000000000) Line 135 C++ RenderEngineD.dll!RenderEngine::graphic::SceneManager::~SceneManager() Line 157 C++ Any idea what might be wrong with my code or setup? Do I have a fundamental design flaw? I did some debugging, but I'm lost in the boost function code. Any help would be very welcome Best, Johannes ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users