From aec0cfaf0856af3da9bdfbf5f3cb82f82c11bcca Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Tue, 11 Aug 2020 14:31:21 +0200 Subject: Fix T79676: Video Sequencer image sequence strip source path breaks when saving with 'Remap Relative' option Caused by rBf7386b97571e. Logic in BKE_bpath_traverse_main calls the callback multiple times [as often as there are images in the strip]. Prior to above commit, the callback was 'bpath_relative_convert_visit_cb' [this one did not have this problem - since it returned early if the path was already made relative once] After rBf7386b97571e though, the 'bpath_relative_rebase_visit_cb' is used [this one should not be entered multiple times, it would modifiy the directy again and again]. Luckily, we have a flag (BKE_BPATH_TRAVERSE_SKIP_MULTIFILE) that can be used to prevent this (this will take care of only calling the callback once in BKE_bpath_traverse_main for the VSE case) Could be backported to 2.83 I think. Maniphest Tasks: T79676 Differential Revision: https://developer.blender.org/D8536 --- source/blender/blenkernel/intern/bpath.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/bpath.c') diff --git a/source/blender/blenkernel/intern/bpath.c b/source/blender/blenkernel/intern/bpath.c index e2d17f34992..1833ad5a748 100644 --- a/source/blender/blenkernel/intern/bpath.c +++ b/source/blender/blenkernel/intern/bpath.c @@ -165,7 +165,7 @@ void BKE_bpath_relative_rebase(Main *bmain, ReportList *reports) { BPathRebase_Data data = {NULL}; - const int flag = BKE_BPATH_TRAVERSE_SKIP_LIBRARY; + const int flag = (BKE_BPATH_TRAVERSE_SKIP_LIBRARY | BKE_BPATH_TRAVERSE_SKIP_MULTIFILE); BLI_assert(basedir_src[0] != '\0'); BLI_assert(basedir_dst[0] != '\0'); -- cgit v1.2.3