diff options
author | Richard Antalik <ISS> | 2020-05-01 22:16:50 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2020-05-01 22:22:04 +0300 |
commit | 98990f6ba439b496e8680d5043ebb18365b9e054 (patch) | |
tree | d20615beeb4e53a019f3c0333b4dece136315cf1 /source/blender/blenkernel/intern/seqcache.c | |
parent | b52b5e15af682b64aeb11f4c3fc967b837590a8e (diff) |
Fix T76033: VSE crash with prefetch, disk cache and meta strips
`BKE_sequencer_prefetch_get_original_sequence()` didn't look in metas
and returned NULL. This caused crash in disk cache that was trying to
read seq->name.
Add function that will look in meta strips recursively and condition
that seq must not be NULL.
Reviewed By: brecht
Maniphest Tasks: T76033
Differential Revision: https://developer.blender.org/D7597
Diffstat (limited to 'source/blender/blenkernel/intern/seqcache.c')
-rw-r--r-- | source/blender/blenkernel/intern/seqcache.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/seqcache.c b/source/blender/blenkernel/intern/seqcache.c index f999a98faac..8a8b4d98c63 100644 --- a/source/blender/blenkernel/intern/seqcache.c +++ b/source/blender/blenkernel/intern/seqcache.c @@ -1225,6 +1225,10 @@ struct ImBuf *BKE_sequencer_cache_get( seq = BKE_sequencer_prefetch_get_original_sequence(seq, scene); } + if (!seq) { + return NULL; + } + if (!scene->ed->cache) { seq_cache_create(context->bmain, scene); } @@ -1287,6 +1291,10 @@ bool BKE_sequencer_cache_put_if_possible(const SeqRenderData *context, seq = BKE_sequencer_prefetch_get_original_sequence(seq, scene); } + if (!seq) { + return NULL; + } + if (BKE_sequencer_cache_recycle_item(scene)) { BKE_sequencer_cache_put(context, seq, cfra, type, ibuf, cost, skip_disk_cache); return true; |