Fix: VSE: use after free in for loop
Same fix as 2a32b26415 - initialize range before using it in for loop
Pull Request: https://projects.blender.org/blender/blender/pulls/129835
This commit is contained in:
committed by
Richard Antalik
parent
40162873e0
commit
9840dd233c
@@ -6,6 +6,7 @@
|
|||||||
* \ingroup spseq
|
* \ingroup spseq
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "BLI_map.hh"
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
|
|
||||||
#include "BLI_set.hh"
|
#include "BLI_set.hh"
|
||||||
@@ -359,7 +360,9 @@ static bool freeze_frame_add_from_retiming_selection(const bContext *C,
|
|||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
|
||||||
for (auto item : SEQ_retiming_selection_get(SEQ_editing_get(scene)).items()) {
|
blender::Map selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
|
||||||
|
|
||||||
|
for (auto item : selection.items()) {
|
||||||
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
|
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
|
||||||
success |= freeze_frame_add_new_for_seq(C, op, item.value, timeline_frame, duration);
|
success |= freeze_frame_add_new_for_seq(C, op, item.value, timeline_frame, duration);
|
||||||
SEQ_relations_invalidate_cache_raw(scene, item.value);
|
SEQ_relations_invalidate_cache_raw(scene, item.value);
|
||||||
@@ -463,7 +466,9 @@ static bool transition_add_from_retiming_selection(const bContext *C,
|
|||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
|
||||||
for (auto item : SEQ_retiming_selection_get(SEQ_editing_get(scene)).items()) {
|
blender::Map selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
|
||||||
|
|
||||||
|
for (auto item : selection.items()) {
|
||||||
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
|
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
|
||||||
success |= transition_add_new_for_seq(C, op, item.value, timeline_frame, duration);
|
success |= transition_add_new_for_seq(C, op, item.value, timeline_frame, duration);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user