From 5eeb5cd16467a9996dd23df454d8ea8ac6fc0b67 Mon Sep 17 00:00:00 2001 From: Falk David Date: Tue, 24 Sep 2024 11:22:40 +0200 Subject: [PATCH] Fix: GPv3: Crash on loading file with layer parents The issue was that the `grease_pencil_foreach_id` did not walk the parent object pointers which meant they were pointing to garbage memory. The fix makes sure to walk all the parent pointers. --- source/blender/blenkernel/intern/grease_pencil.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/blenkernel/intern/grease_pencil.cc b/source/blender/blenkernel/intern/grease_pencil.cc index d37a1e6f29e..923156a1277 100644 --- a/source/blender/blenkernel/intern/grease_pencil.cc +++ b/source/blender/blenkernel/intern/grease_pencil.cc @@ -178,6 +178,11 @@ static void grease_pencil_foreach_id(ID *id, LibraryForeachIDData *data) BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, drawing_reference->id_reference, IDWALK_CB_USER); } } + for (const blender::bke::greasepencil::Layer *layer : grease_pencil->layers()) { + if (layer->parent) { + BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, layer->parent, IDWALK_CB_USER); + } + } } static void grease_pencil_blend_write(BlendWriter *writer, ID *id, const void *id_address)