Hi Igor, On Thu, 12 Jul 2018 at 16:24, Igor Spiridonov <igw...@rambler.ru> wrote: > I have found the memory leak cause. Look like I don't understand how osg > works. > I have a root node and its child node. I add UpdateCallback to the root node > and inside this callback i remove child nod's drawables and add another ones. > I check reference count before I remove them and it's 2 for some reason. My > remove decreases it on 1 but it's not enough. Looks like viewer or something > else keeps these drawables and therefore memleak happens. > > I checked reference count of drawables after I add them to child's node and > it's always 1 but when drawables come again to UpdateCallback it becomes 2.
The OSG's rendering backend retains a ref_ptr<> to the StateSet and Drawables required for the current frame, but nothing beyond this. It's not a memory leak at though, this is all cleaned up robustly. If there is an actual leak in your program then perhaps you've created a circular reference somewhere, could you have a child object, or callback perhaps that holds a ref_ptr<> to a parent? Robert. _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org