From 9927653ad2205871cfa9ef6d9ab74af47b08131e Mon Sep 17 00:00:00 2001 From: Lars Vogel Date: Mon, 18 May 2026 11:04:08 +0200 Subject: [PATCH] Modernize ResourceChangeEvent.findMarkerDeltas iteration Replace the explicit Iterator over markerDeltas.values() with an enhanced for-loop and switch the terminal toArray call from the pre-sized new IMarkerDelta[matching.size()] form to the IMarkerDelta[]::new generator. The pre-sized form has not been the faster idiom on HotSpot since the size-zero/generator variants started being intrinsified, and the enhanced for-loop drops the hasNext/next boilerplate while reading the iteration intent in one statement. --- .../core/internal/events/ResourceChangeEvent.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceChangeEvent.java b/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceChangeEvent.java index 43daf101a56..96ea502d275 100644 --- a/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceChangeEvent.java +++ b/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceChangeEvent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -63,11 +63,8 @@ public IMarkerDelta[] findMarkerDeltas(String findType, boolean includeSubtypes) return NO_MARKER_DELTAS; } ArrayList matching = new ArrayList<>(); - Iterator deltaSets = markerDeltas.values().iterator(); - while (deltaSets.hasNext()) { - MarkerSet deltas = deltaSets.next(); - IMarkerSetElement[] elements = deltas.elements(); - for (IMarkerSetElement element : elements) { + for (MarkerSet deltas : markerDeltas.values()) { + for (IMarkerSetElement element : deltas.elements()) { MarkerDelta markerDelta = (MarkerDelta) element; //our inclusion test depends on whether we are considering subtypes if (findType == null || (includeSubtypes ? markerDelta.isSubtypeOf(findType) : markerDelta.getType().equals(findType))) { @@ -75,7 +72,7 @@ public IMarkerDelta[] findMarkerDeltas(String findType, boolean includeSubtypes) } } } - return matching.toArray(new IMarkerDelta[matching.size()]); + return matching.toArray(IMarkerDelta[]::new); } /**