Hi Robert,

I can have a go at debugging this if you have no ideas. Clearly changing
all the files in OSG-Data to have Windows line endings is not a solution.

OK, debugging into this, it gets into InputStream::readObjectFields() (src/osgDB/InputStream.cpp line 632 on trunk). Here as I understand it, it's supposed to read the data for each type in the object's class hierarchy. It reads the Object part, then the Node part, and when it gets to the Group part (which has only the Children field to read) it fails (in UserSerializer::read() - include/osgDB/Serializer line 162).

            if ( !is.matchString(_name) )
                return true;

(here _name is "Children"). Going into matchString, which is this:

    std::string s; readString(s);
    // ...

After readString(s), s is "1", which means that the "Children" string had already been consumed somewhere.

Starting over, it seems that the "Children" gets consumed when it tries to deserialize "UserDataContainer" (the last field of osg::Object to be deserialized). This doesn't match, so it should go back in the stream, but it doesn't because from then on when reading osg::Node's properties, it always gets the "1".

I don't quite know how to debug this further... Any hints?

J-S
--
______________________________________________________
Jean-Sebastien Guay    [email protected]
                               http://www.cm-labs.com/
                    http://whitestar02.dyndns-web.com/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to