diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-08-29 17:58:13 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-08-29 17:58:13 +0300 |
commit | 696f4dc85f7faa8bc21e2e48302c6b680a5bb09e (patch) | |
tree | 2c8efdf84d83a0bdf8842980afbcbd356d2e2b94 /source/blender/alembic/intern | |
parent | 735e287271647d317942c69f23f1753ca2f2075d (diff) |
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.
Diffstat (limited to 'source/blender/alembic/intern')
-rw-r--r-- | source/blender/alembic/intern/abc_util.cc | 6 | ||||
-rw-r--r-- | source/blender/alembic/intern/alembic_capi.cc | 4 |
2 files changed, 7 insertions, 3 deletions
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(); |