Hi,

It's been pointed out to me that the DefaultUserDataContainer object list can 
be a little bit more deeply copied with this change:


Code:
--- a/src/osg/UserDataContainer.cpp
+++ b/src/osg/UserDataContainer.cpp
@@ -56,7 +56,10 @@ DefaultUserDataContainer::DefaultUserDataContainer(const 
DefaultUserDataContaine
         itr != udc._objectList.end();
         ++itr)
     {
-        _objectList.push_back(copyop(itr->get()));
+        if (copyop.getCopyFlags()&osg::CopyOp::DEEP_COPY_USERDATA)
+            _objectList.push_back(osg::clone(itr->get(), copyop));
+        else
+            _objectList.push_back(copyop(itr->get()));
     }
 }




This will make _objectList at least point to copies of the objects instead of 
literally the same objects, which is a step in the right direction, but those 
copies will still be shallow copies.

Cheers,
Chris

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76837#76837





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to