diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-03-18 16:12:16 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-03-26 16:13:39 +0300 |
commit | 850c47b5a87c26b04caf2116a07de8739309cbd5 (patch) | |
tree | 843c88620885f3f384169a5d9b8bba92cafc6352 | |
parent | 0e70ddfe14dfab28657087c779c1a37e3db295d8 (diff) |
Test for NULL archive pointer when writing as well.
This should not usually happen because the operator asks for permission
to delete the file prior to writing, but should be checked nevertheless.
-rw-r--r-- | source/blender/editors/io/io_cache_library.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/source/blender/editors/io/io_cache_library.c b/source/blender/editors/io/io_cache_library.c index 87fe9d7dbd2..b42f70caf77 100644 --- a/source/blender/editors/io/io_cache_library.c +++ b/source/blender/editors/io/io_cache_library.c @@ -284,15 +284,17 @@ static void cache_library_bake_startjob(void *customdata, short *stop, short *do BKE_cache_archive_path(data->cachelib->filepath, (ID *)data->cachelib, data->cachelib->id.lib, filename, sizeof(filename)); data->archive = PTC_open_writer_archive(scene, filename); - data->writer = PTC_writer_dupligroup(data->group->id.name, &data->eval_ctx, scene, data->group); - PTC_writer_init(data->writer, data->archive); - - G.is_break = false; - - /* XXX where to get this from? */ - start_frame = scene->r.sfra; - end_frame = scene->r.efra; - PTC_bake(data->bmain, scene, &data->eval_ctx, data->writer, start_frame, end_frame, stop, do_update, progress); + if (data->archive) { + data->writer = PTC_writer_dupligroup(data->group->id.name, &data->eval_ctx, scene, data->group); + PTC_writer_init(data->writer, data->archive); + + G.is_break = false; + + /* XXX where to get this from? */ + start_frame = scene->r.sfra; + end_frame = scene->r.efra; + PTC_bake(data->bmain, scene, &data->eval_ctx, data->writer, start_frame, end_frame, stop, do_update, progress); + } *do_update = true; *stop = 0; |