diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc index 6c4e3169aa3..f2706c848b7 100644 --- a/source/blender/editors/space_node/node_draw.cc +++ b/source/blender/editors/space_node/node_draw.cc @@ -4398,16 +4398,14 @@ static void node_draw_zones_and_frames(const bContext &C, Span blocks) { const bNodeTreeZones *zones = ntree.zones(); - if (zones == nullptr) { - return; - } + const int zones_num = zones ? zones->zones.size() : 0; - Array> bounds_by_zone(zones->zones.size()); - Array fillet_curve_by_zone(zones->zones.size()); + Array> bounds_by_zone(zones_num); + Array fillet_curve_by_zone(zones_num); /* Bounding box area of zones is used to determine draw order. */ - Array bounding_box_width_by_zone(zones->zones.size()); + Array bounding_box_width_by_zone(zones_num); - for (const int zone_i : zones->zones.index_range()) { + for (const int zone_i : IndexRange(zones_num)) { const bNodeTreeZone &zone = *zones->zones[zone_i]; find_bounds_by_zone_recursive(snode, zone, zones->zones, bounds_by_zone); @@ -4453,8 +4451,8 @@ static void node_draw_zones_and_frames(const bContext &C, using ZoneOrNode = std::variant; Vector draw_order; - for (const std::unique_ptr &zone : zones->zones) { - draw_order.append(zone.get()); + for (const int zone_i : IndexRange(zones_num)) { + draw_order.append(zones->zones[zone_i].get()); } for (const bNode *node : ntree.all_nodes()) { if (node->flag & NODE_BACKGROUND) {