Commit: 696f4dc85f7faa8bc21e2e48302c6b680a5bb09e
Author: Sybren A. Stüvel
Date:   Tue Aug 29 16:58:13 2017 +0200
Branches: master
https://developer.blender.org/rB696f4dc85f7faa8bc21e2e48302c6b680a5bb09e

Alembic: Fix T52579: crash when replacing slightly different alembic files

Apparently with Maya in a certain configuration, it's possible to have an
Alembic object without schema in the Alembic file. This is now handled
properly, instead of crashing on a null pointer.

===================================================================

M       source/blender/alembic/intern/abc_util.cc
M       source/blender/alembic/intern/alembic_capi.cc

===================================================================

diff --git a/source/blender/alembic/intern/abc_util.cc 
b/source/blender/alembic/intern/abc_util.cc
index 26eb7620fb1..24a508e8292 100644
--- a/source/blender/alembic/intern/abc_util.cc
+++ b/source/blender/alembic/intern/abc_util.cc
@@ -370,10 +370,10 @@ AbcObjectReader *create_reader(const 
Alembic::AbcGeom::IObject &object, ImportSe
                reader = new AbcCurveReader(object, settings);
        }
        else {
-               std::cerr << "Alembic: unknown how to handle objects of schema "
+               std::cerr << "Alembic: unknown how to handle objects of schema 
'"
                          << md.get("schemaObjTitle")
-                         << ", skipping object "
-                         << object.getFullName() << std::endl;
+                         << "', skipping object '"
+                         << object.getFullName() << "'" << std::endl;
        }
 
        return reader;
diff --git a/source/blender/alembic/intern/alembic_capi.cc 
b/source/blender/alembic/intern/alembic_capi.cc
index bee8e92e969..5503dcb1527 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -990,6 +990,10 @@ CacheReader 
*CacheReader_open_alembic_object(AbcArchiveHandle *handle, CacheRead
 
        ImportSettings settings;
        AbcObjectReader *abc_reader = create_reader(iobject, settings);
+       if (abc_reader == NULL) {
+               /* This object is not supported */
+               return NULL;
+       }
        abc_reader->object(object);
        abc_reader->incref();

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to