From e2a5846d5619a8396bbff608c0466f1ac68f4b55 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 14 Aug 2023 18:17:13 +0200 Subject: [PATCH] Fix (unreported) improper handling of camera's baground image IDs in foreach_id callback. `foreach_id` callbacks should not decide whether a given ID pointers should be processed or not (unless maybe some extremely specific cases). Even if an ID pointer is not currently 'used', it still needs to increment its ID user count, be remapped to a new pointer, etc. etc. --- source/blender/blenkernel/intern/camera.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/source/blender/blenkernel/intern/camera.cc b/source/blender/blenkernel/intern/camera.cc index 3da63851f6a..9a133758554 100644 --- a/source/blender/blenkernel/intern/camera.cc +++ b/source/blender/blenkernel/intern/camera.cc @@ -98,12 +98,8 @@ static void camera_foreach_id(ID *id, LibraryForeachIDData *data) BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, camera->dof.focus_object, IDWALK_CB_NOP); LISTBASE_FOREACH (CameraBGImage *, bgpic, &camera->bg_images) { - if (bgpic->source == CAM_BGIMG_SOURCE_IMAGE) { - BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->ima, IDWALK_CB_USER); - } - else if (bgpic->source == CAM_BGIMG_SOURCE_MOVIE) { - BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->clip, IDWALK_CB_USER); - } + BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->ima, IDWALK_CB_USER); + BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, bgpic->clip, IDWALK_CB_USER); } }