From 16410eab9b943f372483c4fd27b2da861adc7e90 Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Wed, 13 Nov 2024 11:04:13 +0100 Subject: [PATCH 1/2] Fix: Compiler warning about unused enum in switch case. Caused by 9a4ce4a0f77364077143e00b8b5106f2df13b410 Pull Request: https://projects.blender.org/blender/blender/pulls/130213 --- source/blender/editors/animation/anim_channels_edit.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/blender/editors/animation/anim_channels_edit.cc b/source/blender/editors/animation/anim_channels_edit.cc index 8a2122431b4..4dbdcf69ba4 100644 --- a/source/blender/editors/animation/anim_channels_edit.cc +++ b/source/blender/editors/animation/anim_channels_edit.cc @@ -2097,6 +2097,8 @@ static void rearrange_grease_pencil_channels(bAnimContext *ac, eRearrangeAnimCha } break; } + default: + break; } } } From f7ffef07d4f22e2afd6cfff61f4655b51e081a7e Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Wed, 13 Nov 2024 13:38:45 +0100 Subject: [PATCH 2/2] Fix #130189: Crash parenting object to layer Caused by 71398478b2. `parsubstr` is nullptr in Layer struct. This results in crash when an object is parented to a new layer. This can be fixed by passing layer member function `parent_bone_name()`. It handles the null pointer. Pull Request: https://projects.blender.org/blender/blender/pulls/130205 --- .../editors/grease_pencil/intern/grease_pencil_layers.cc | 4 ++-- source/blender/makesrna/intern/rna_grease_pencil.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc b/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc index 391d64a37f1..6ac95537e3f 100644 --- a/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc +++ b/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc @@ -43,7 +43,7 @@ bool grease_pencil_layer_parent_set(bke::greasepencil::Layer &layer, } layer.parent = parent; - BLI_strncpy(layer.parsubstr, bone.c_str(), sizeof(layer.parsubstr)); + layer.parsubstr = BLI_strdup_null(bone.c_str()); /* Calculate inverse parent matrix. */ if (parent) { copy_m4_m4(layer.parentinv, parent->world_to_object().ptr()); @@ -65,7 +65,7 @@ void grease_pencil_layer_parent_clear(bke::greasepencil::Layer &layer, const boo } layer.parent = nullptr; - layer.parsubstr[0] = 0; + MEM_SAFE_FREE(layer.parsubstr); copy_m4_m4(layer.parentinv, float4x4::identity().ptr()); } diff --git a/source/blender/makesrna/intern/rna_grease_pencil.cc b/source/blender/makesrna/intern/rna_grease_pencil.cc index 5b779a4424c..a14cfab7a20 100644 --- a/source/blender/makesrna/intern/rna_grease_pencil.cc +++ b/source/blender/makesrna/intern/rna_grease_pencil.cc @@ -367,7 +367,7 @@ static void rna_GreasePencilLayer_parent_set(PointerRNA *ptr, bke::greasepencil::Layer &layer = static_cast(ptr->data)->wrap(); Object *parent = static_cast(value.data); - ed::greasepencil::grease_pencil_layer_parent_set(layer, parent, layer.parsubstr, false); + ed::greasepencil::grease_pencil_layer_parent_set(layer, parent, layer.parent_bone_name(), false); } static void rna_GreasePencilLayer_bone_set(PointerRNA *ptr, const char *value)