From 33cdeec757c576db715a0ce8cc809c570175f7f9 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 23 Mar 2009 16:25:37 +0000 Subject: [PATCH] From Michael Platings, "Changed some pointers to ref_ptr which fixed the leak " --- src/osgPlugins/dae/daeRGeometry.cpp | 4 ++-- src/osgPlugins/dae/daeRMaterials.cpp | 2 +- src/osgPlugins/dae/daeReader.h | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/osgPlugins/dae/daeRGeometry.cpp b/src/osgPlugins/dae/daeRGeometry.cpp index 6f0168a96..9eb771823 100644 --- a/src/osgPlugins/dae/daeRGeometry.cpp +++ b/src/osgPlugins/dae/daeRGeometry.cpp @@ -40,7 +40,7 @@ osg::Geode* daeReader::processInstanceGeometry( domInstance_geometry *ig ) domGeometryGeodeMap::iterator iter = geometryMap.find( geom ); if ( iter != geometryMap.end() ) { - cachedGeode = iter->second; + cachedGeode = iter->second.get(); } else { @@ -119,7 +119,7 @@ osg::Geode* daeReader::processInstanceController( domInstance_controller *ictrl domGeometryGeodeMap::iterator iter = geometryMap.find( geom ); if ( iter != geometryMap.end() ) { - cachedGeode = iter->second; + cachedGeode = iter->second.get(); } else { diff --git a/src/osgPlugins/dae/daeRMaterials.cpp b/src/osgPlugins/dae/daeRMaterials.cpp index d1a1c3f07..daf07c1fb 100644 --- a/src/osgPlugins/dae/daeRMaterials.cpp +++ b/src/osgPlugins/dae/daeRMaterials.cpp @@ -83,7 +83,7 @@ void daeReader::processBindMaterial( domBind_material *bm, domGeometry *geom, os if ( iter != materialMap.end() ) { // Reuse material - ss = iter->second; + ss = iter->second.get(); } else { diff --git a/src/osgPlugins/dae/daeReader.h b/src/osgPlugins/dae/daeReader.h index 7473d4be3..cf0f6b17c 100644 --- a/src/osgPlugins/dae/daeReader.h +++ b/src/osgPlugins/dae/daeReader.h @@ -232,9 +232,9 @@ protected: domInstance_effect *currentInstance_effect; domEffect *currentEffect; - typedef std::map< domGeometry*, osg::Geode*> domGeometryGeodeMap; - typedef std::map< domMaterial*, osg::StateSet*> domMaterialStateSetMap; - typedef std::map< std::string, osg::StateSet*> MaterialStateSetMap; + typedef std::map< domGeometry*, osg::ref_ptr > domGeometryGeodeMap; + typedef std::map< domMaterial*, osg::ref_ptr > domMaterialStateSetMap; + typedef std::map< std::string, osg::ref_ptr > MaterialStateSetMap; /// Maps geometry to a Geode domGeometryGeodeMap geometryMap;