2
0
Эх сурвалжийг харах

closes https://github.com/assimp/assimp/issues/1340: Fix handling of empty nodes in openddl-parser.

kimkulling 7 жил өмнө
parent
commit
e13f6876bb

+ 6 - 0
contrib/openddlparser/code/OpenDDLParser.cpp

@@ -100,9 +100,15 @@ static bool isUnsignedIntegerType( Value::ValueType integerType ) {
 }
 
 static DDLNode *createDDLNode( Text *id, OpenDDLParser *parser ) {
+    // Basic checks
     if( ddl_nullptr == id || ddl_nullptr == parser ) {
         return ddl_nullptr;
     }
+    
+    // If the buffer is empty ( an empty node ) return nullptr
+    if ( ddl_nullptr == id->m_buffer ) {
+        return ddl_nullptr;
+    }
 
     const std::string type( id->m_buffer );
     DDLNode *parent( parser->top() );

+ 6 - 0
test/unit/utOpenGEXImportExport.cpp

@@ -68,3 +68,9 @@ TEST_F( utOpenGEXImportExport, Importissue1262_NoCrash ) {
     EXPECT_NE( nullptr, scene );
 
 }
+
+TEST_F(utOpenGEXImportExport, Importissue1340_EmptyCameraObject) {
+    Assimp::Importer importer;
+    const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OpenGEX/empty_camera.ogex", 0);
+    EXPECT_NE(nullptr, scene);
+}