Hi all,

I am currently having a random crash with osgText, here is the context : I
read some IVE files with texts inside, when loading the text it crashs into
osgText::Text::setFont (Text.cpp line 119) because the variable "font" is a
corrupted pointer (not setted to NULL, but typically a variable already
deleted).

My investigations bring me to osgText::readFontFile into the file Font.cpp.
Line 110 we can see :

osg::Object* object = osgDB::readObjectFile(foundFile, userOptions ?
userOptions : localOptions.get());

I always thought that doing this may lead to a crash, and that we must do :

osg::ref_ptr<osg::Object> object = osgDB::readObjectFile(foundFile,
userOptions ? userOptions : localOptions.get());

To be sure that readObjectFile will not delete the object by deleting its
ReaderWriter::ReadResult.
And line 117, the test object->referenceCount()==0 makes me also perplex, if
the object's reference count is set to 0, shouldn't it be already deleted ?

My crash is really a random one, but always in the same place, that's why I
think that sometime the font object is deleted before being assigned to a
ref_ptr into setFont.

-- 
Serge Lages
http://www.tharsis-software.com
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to