Hi osg-users,
I've noticed something strange in my app, I have a composite viewer with
multiple view that I can add or remove at run-time. When I do not use a
LODScaleHandler everything works fine when I remove my views from composite
viewer.
But when I use a LODScaleHandler as :
rpView->addEventHandler(new osgViewer::LODScaleHandler());
My application crashes when I remove a view from composite viewer with
current stack:
> osg38-osgd.dll!osg::Referenced::unref() Ligne 155 + 0x23 octets C++
osg38-osgViewerd.dll!osg::ref_ptr<osgGA::GUIEventHandler>::~ref_ptr<osgGA::GUIEventHandler>()
Ligne 30 + 0x33 octets C++
osg38-osgViewerd.dll!std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::_Node::~_Node() + 0x19 octets C++
osg38-osgViewerd.dll!std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::_Node::`scalar deleting destructor'() + 0x16 octets C++
osg38-osgViewerd.dll!std::_Destroy<std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
>
>::_Node>(std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::_Node * _Ptr=0x032ef1c8) Ligne 61 C++
osg38-osgViewerd.dll!std::allocator<std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
>
>::_Node>::destroy(std::_List_nod<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::_Node * _Ptr=0x032ef1c8) Ligne 161 + 0x9 octets C++
osg38-osgViewerd.dll!std::list<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::clear() Ligne 827 C++
osg38-osgViewerd.dll!std::list<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >::_Tidy() Ligne 1185 C++
osg38-osgViewerd.dll!std::list<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
>
>::~list<osg::ref_ptr<osgGA::GUIEventHandler>,std::allocator<osg::ref_ptr<osgGA::GUIEventHandler>
> >() Ligne 516 C++
osg38-osgViewerd.dll!osgViewer::View::~View() Ligne 170 + 0x2d octets C++
osg38-osgViewerd.dll!osgViewer::View::`vbase destructor'() + 0x17
octets C++
Px-Viewer.exe!osgViewer::View::`scalar deleting destructor'() + 0x2e
octets C++
osg38-osgd.dll!osg::Referenced::unref() Ligne 155 + 0x23 octets C++
osg38-osgViewerd.dll!osg::ref_ptr<osgViewer::View>::~ref_ptr<osgViewer::View>()
Ligne 30 + 0x33 octets C++
osg38-osgViewerd.dll!osg::ref_ptr<osgViewer::View>::`scalar deleting
destructor'() + 0x16 octets C++
osg38-osgViewerd.dll!std::_Destroy<osg::ref_ptr<osgViewer::View>
>(osg::ref_ptr<osgViewer::View> * _Ptr=0x032d47f8) Ligne 61 C++
osg38-osgViewerd.dll!std::allocator<osg::ref_ptr<osgViewer::View>
>::destroy(osg::ref_ptr<osgViewer::View> * _Ptr=0x032d47f8) Ligne 161 + 0x9
octets C++
osg38-osgViewerd.dll!std::_Destroy_range<osg::ref_ptr<osgViewer::View>,std::allocator<osg::ref_ptr<osgViewer::View>
> >(osg::ref_ptr<osgViewer::View> * _First=0x032d47f8,
osg::ref_ptr<osgViewer::View> * _Last=0x032d47fc,
std::allocator<osg::ref_ptr<osgViewer::View> > & _Al={...},
std::_Nonscalar_ptr_iterator_tag __formal={...}) Ligne 235 + 0xc octets C++
osg38-osgViewerd.dll!std::_Destroy_range<osg::ref_ptr<osgViewer::View>,std::allocator<osg::ref_ptr<osgViewer::View>
> >(osg::ref_ptr<osgViewer::View> * _First=0x032d47f8,
osg::ref_ptr<osgViewer::View> * _Last=0x032d47fc,
std::allocator<osg::ref_ptr<osgViewer::View> > & _Al={...}) Ligne 226 +
0x28 octets C++
osg38-osgViewerd.dll!std::vector<osg::ref_ptr<osgViewer::View>,std::allocator<osg::ref_ptr<osgViewer::View>
> >::_Destroy(osg::ref_ptr<osgViewer::View> * _First=0x032d47f8,
osg::ref_ptr<osgViewer::View> * _Last=0x032d47fc) Ligne 1083 + 0x14
octets C++
osg38-osgViewerd.dll!std::vector<osg::ref_ptr<osgViewer::View>,std::allocator<osg::ref_ptr<osgViewer::View>
>
>::erase(std::_Vector_iterator<osg::ref_ptr<osgViewer::View>,std::allocator<osg::ref_ptr<osgViewer::View>
> > _Where={_ptr=0x032cee88 }) Ligne 989 C++
osg38-osgViewerd.dll!osgViewer::CompositeViewer::removeView(osgViewer::View
* view=0x032cee88) Ligne 147 + 0x23 octets C++
--
Alexandre AMALRIC Ingénieur R&D
===================================
PIXXIM S.A. 73E, rue Perrin-Solliers 13006 Marseille
http://www.pixxim.fr
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org