Hi,

I've been experiencing various problems involving osg::DeleteHandler.

When I modify the osgviewer program by replacing

osgViewer::Viewer viewer(arguments);

with

osg::ref_ptr<osgViewer::Viewer> viewerp(new osgViewer::Viewer(arguments));
osgViewer::Viewer& viewer = *viewerp;

and quit the application, sometimes it hangs, and sometimes it displays

Error: glBufferData not supported by the OpenGL driver

In any case, I'm pretty sure that's not true for me, since I have
OpenGL 2.1drivers.  I think the problem doesn't occur when I pass in
--SingleThreaded.

In one of my projects, where I'm trying to embed a python interpreter (using
boost::python and the Python C API), I also found that when I call an
exposed function through python that creates a node and puts it in a global
ref_ptr, I get a segfault upon quitting the application somewhere in
DeleteHandler::doDelete().  I believe this happens regardless of the
threading model.  I don't claim much familiarity with boost::python or the
Python C API, but I don't think I'm doing anything wrong involving Python's
reference counting or threads, since I can produce the problem in a minimal
program that does what I'm describing.

Incidentally, when I run valgrind osgviewer cow.osg, I get the following
error:

Conditional jump or move depends on uninitialised value(s)
   at 0x4AEBB4C: osg::DeleteHandler::flush() (stl_list.h:135)
   by 0x530D58D: osgViewer::Viewer::advance(double) (Viewer.cpp:1823)
   by 0x5313F30: osgViewer::Viewer::frame(double) (Viewer.cpp:1783)
   by 0x5314085: osgViewer::Viewer::run() (Viewer.cpp:767)
   by 0x4039EF: main (osgViewer.cpp:146)

I've been running all of this on a linux x86_64 machine, osg-2.0 compiled
with the ReleaseWithDebugInfo switch, using g++-3.4.5.

Has anyone else experienced these kinds of problems?

Thanks,

Anye Li
_______________________________________________
Osg-Users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to