Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Tönne <lukas.toenne@gmail.com>2015-03-18 16:12:16 +0300
committerLukas Tönne <lukas.toenne@gmail.com>2015-03-26 16:13:39 +0300
commit850c47b5a87c26b04caf2116a07de8739309cbd5 (patch)
tree843c88620885f3f384169a5d9b8bba92cafc6352
parent0e70ddfe14dfab28657087c779c1a37e3db295d8 (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.c20
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;