From 1016092720a42377f6d840a3df1e28ff3182bd2b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 9 Jun 2011 11:07:27 +0000 Subject: [PATCH] From Mathias Froehlich, "the attached patch adds an additional null pointer check" --- src/osgPlugins/vrml/ReaderWriterVRML2.cpp | 46 ++++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/osgPlugins/vrml/ReaderWriterVRML2.cpp b/src/osgPlugins/vrml/ReaderWriterVRML2.cpp index 7c90f5a5e..558690245 100644 --- a/src/osgPlugins/vrml/ReaderWriterVRML2.cpp +++ b/src/osgPlugins/vrml/ReaderWriterVRML2.cpp @@ -329,28 +329,30 @@ osg::Node* ReaderWriterVRML2::convertFromVRML(openvrml::node *obj) const const openvrml::sfnode * sfn = dynamic_cast(fv.get()); openvrml::sfnode::value_type node_ptr = sfn->value(); - // is it indexed_face_set_node ? - if (node_ptr->type().id()=="IndexedFaceSet") - osg_geom = convertVRML97IndexedFaceSet(node_ptr.get()); - - else if (node_ptr->type().id()=="IndexedLineSet") - osg_geom = convertVRML97IndexedLineSet(node_ptr.get()); - - else if (node_ptr->type().id() == "Box") - osg_geom = convertVRML97Box(node_ptr.get()); - - else if (node_ptr->type().id() == "Sphere") - osg_geom = convertVRML97Sphere(node_ptr.get()); - - else if (node_ptr->type().id() == "Cone") - osg_geom = convertVRML97Cone(node_ptr.get()); - - else if (node_ptr->type().id() == "Cylinder") - osg_geom = convertVRML97Cylinder(node_ptr.get()); - - else - { - // other geometry types not handled yet + if (node_ptr.get()) { + // is it indexed_face_set_node ? + if (node_ptr->type().id()=="IndexedFaceSet") + osg_geom = convertVRML97IndexedFaceSet(node_ptr.get()); + + else if (node_ptr->type().id()=="IndexedLineSet") + osg_geom = convertVRML97IndexedLineSet(node_ptr.get()); + + else if (node_ptr->type().id() == "Box") + osg_geom = convertVRML97Box(node_ptr.get()); + + else if (node_ptr->type().id() == "Sphere") + osg_geom = convertVRML97Sphere(node_ptr.get()); + + else if (node_ptr->type().id() == "Cone") + osg_geom = convertVRML97Cone(node_ptr.get()); + + else if (node_ptr->type().id() == "Cylinder") + osg_geom = convertVRML97Cylinder(node_ptr.get()); + + else + { + // other geometry types not handled yet + } } } }