diff options
author | Richard Antalik <ISS> | 2019-10-23 03:30:43 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-10-23 06:58:48 +0300 |
commit | 0d8df072325aed2d092d5c6ee03035a2793edd7a (patch) | |
tree | 3acf6298a9b29a745ef56b7221050f6508aafc69 /source | |
parent | 6c1cc08da3bab263db0bb65b5f0662cfd05a7d14 (diff) |
Fix T70845: Crash when switching scene of scene strip.
Crash on assert in `sound_verify_evaluated_id()`
Reviewed By: sergey
Maniphest Tasks: T70845
Differential Revision: https://developer.blender.org/D6104
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/sound.c | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_sequencer.c | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 6cbb01861e2..d42436ecb40 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -677,6 +677,9 @@ void BKE_sound_set_cfra(int cfra) void BKE_sound_set_scene_volume(Scene *scene, float volume) { sound_verify_evaluated_id(&scene->id); + if (scene->sound_scene == NULL) { + return; + } AUD_Sequence_setAnimationData(scene->sound_scene, AUD_AP_VOLUME, CFRA, diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 31ead989f25..18985d41551 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -157,6 +157,13 @@ static void rna_Sequence_invalidate_composite_update(Main *UNUSED(bmain), } } +static void rna_Sequence_scene_switch_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + rna_Sequence_invalidate_raw_update(bmain, scene, ptr); + DEG_id_tag_update(&scene->id, ID_RECALC_AUDIO | ID_RECALC_SEQUENCER_STRIPS); + DEG_relations_tag_update(bmain); +} + static void rna_Sequence_use_sequence(Main *bmain, Scene *scene, PointerRNA *ptr) { /* General update callback. */ @@ -2227,7 +2234,7 @@ static void rna_def_scene(BlenderRNA *brna) prop = RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses"); - RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update"); + RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_scene_switch_update"); prop = RNA_def_property(srna, "scene_camera", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE); |