From f0df819cbffb22ed2c1b12420a1a0a7a49127d49 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 24 Jan 2014 11:37:35 +0000 Subject: [PATCH] Fixed crash when reading a viewer configuration file where the EventVisitor was being re-assigned but left a dangling pointer --- src/osgViewer/Viewer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index 4a94389cd..3b86fcb51 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -266,9 +266,14 @@ void Viewer::take(osg::View& rhs) _startRenderingBarrier = rhs_viewer->_startRenderingBarrier; _endRenderingDispatchBarrier = rhs_viewer->_endRenderingDispatchBarrier; _endDynamicDrawBlock = rhs_viewer->_endDynamicDrawBlock; + _eventVisitor = rhs_viewer->_eventVisitor; + _eventVisitor->setActionAdapter(this); + _eventVisitor->setFrameStamp(_frameStamp.get()); + _updateOperations = rhs_viewer->_updateOperations; _updateVisitor = rhs_viewer->_updateVisitor; + _realizeOperation = rhs_viewer->_realizeOperation; _currentContext = rhs_viewer->_currentContext; @@ -283,6 +288,7 @@ void Viewer::take(osg::View& rhs) rhs_viewer->_updateVisitor = 0; rhs_viewer->_realizeOperation = 0; rhs_viewer->_currentContext = 0; + } #endif }