From 42fbb6149c481d0456a46ef327bd182288bc584c Mon Sep 17 00:00:00 2001 From: Omar Emara Date: Fri, 18 Jul 2025 12:32:30 +0200 Subject: [PATCH] Fix: Assert in Menu Switch node Blender asserts when updating declaration of Menu Switch node, that's because a compositor specific function always ran. Fix this by running for compositor node trees only. Pull Request: https://projects.blender.org/blender/blender/pulls/142331 --- .../nodes/geometry/nodes/node_geo_menu_switch.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc b/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc index dd4176ba465..db5d35b4418 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc @@ -47,11 +47,14 @@ static void node_declare(blender::nodes::NodeDeclarationBuilder &b) const eNodeSocketDatatype data_type = eNodeSocketDatatype(storage.data_type); const bool supports_fields = socket_type_supports_fields(data_type) && ntree->type == NTREE_GEOMETRY; - const bool is_single_compositor_type = compositor::Result::is_single_value_only_type( - compositor::socket_data_type_to_result_type(data_type)); - const StructureType compositor_structure_type = is_single_compositor_type ? - StructureType::Single : - StructureType::Dynamic; + + StructureType compositor_structure_type = StructureType::Dynamic; + if (ntree->type == NTREE_COMPOSIT) { + const bool is_single_compositor_type = compositor::Result::is_single_value_only_type( + compositor::socket_data_type_to_result_type(data_type)); + compositor_structure_type = is_single_compositor_type ? StructureType::Single : + StructureType::Dynamic; + } auto &menu = b.add_input("Menu"); if (supports_fields) {