Skip to content

Commit d5ccfa2

Browse files
turbanoffSerguei Spitsyn
authored andcommitted
8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi
Reviewed-by: alanb, amenkov, sspitsyn, cjplummer
1 parent 29dcbb7 commit d5ccfa2

File tree

9 files changed

+46
-81
lines changed

9 files changed

+46
-81
lines changed

src/jdk.jdi/share/classes/com/sun/tools/jdi/ConcreteMethodImpl.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -37,8 +37,6 @@
3737
import com.sun.jdi.LocalVariable;
3838
import com.sun.jdi.Location;
3939
import com.sun.jdi.VirtualMachine;
40-
import com.sun.tools.jdi.JDWP.Method.VariableTable;
41-
import com.sun.tools.jdi.JDWP.Method.VariableTableWithGeneric;
4240

4341
/**
4442
* Represents methods with method bodies.
@@ -220,9 +218,7 @@ public List<LocalVariable> variablesByName(String name) throws AbsentInformation
220218
List<LocalVariable> variables = getVariables();
221219

222220
List<LocalVariable> retList = new ArrayList<>(2);
223-
Iterator<LocalVariable> iter = variables.iterator();
224-
while(iter.hasNext()) {
225-
LocalVariable variable = iter.next();
221+
for (LocalVariable variable : variables) {
226222
if (variable.name().equals(name)) {
227223
retList.add(variable);
228224
}
@@ -234,9 +230,7 @@ public List<LocalVariable> arguments() throws AbsentInformationException {
234230
List<LocalVariable> variables = getVariables();
235231

236232
List<LocalVariable> retList = new ArrayList<>(variables.size());
237-
Iterator<LocalVariable> iter = variables.iterator();
238-
while(iter.hasNext()) {
239-
LocalVariable variable = iter.next();
233+
for (LocalVariable variable : variables) {
240234
if (variable.isArgument()) {
241235
retList.add(variable);
242236
}
@@ -289,9 +283,8 @@ private SoftLocationXRefs getLocations(SDE.Stratum stratum) {
289283
int highestLine = -1;
290284
SDE.LineStratum lastLineStratum = null;
291285
SDE.Stratum baseStratum = declaringType.stratum(SDE.BASE_STRATUM_NAME);
292-
Iterator<Location> it = getBaseLocations().lineLocations.iterator();
293-
while(it.hasNext()) {
294-
LocationImpl loc = (LocationImpl)it.next();
286+
for (Location lineLocation : getBaseLocations().lineLocations) {
287+
LocationImpl loc = (LocationImpl)lineLocation;
295288
int baseLineNumber = loc.lineNumber(baseStratum);
296289
SDE.LineStratum lineStratum =
297290
stratum.lineStratum(declaringType, baseLineNumber);

src/jdk.jdi/share/classes/com/sun/tools/jdi/ConnectorImpl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,8 @@ public Map<String,Argument> defaultArguments() {
5151
Map<String,Argument> defaults = new LinkedHashMap<>();
5252
Collection<Argument> values = defaultArguments.values();
5353

54-
Iterator<Argument> iter = values.iterator();
55-
while (iter.hasNext()) {
56-
ArgumentImpl argument = (ArgumentImpl)iter.next();
54+
for (Argument a : values) {
55+
ArgumentImpl argument = (ArgumentImpl)a;
5756
defaults.put(argument.name(), (Argument)argument.clone());
5857
}
5958
return defaults;

src/jdk.jdi/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@
2828
import java.util.ArrayList;
2929
import java.util.Collections;
3030
import java.util.HashMap;
31-
import java.util.Iterator;
3231
import java.util.List;
3332
import java.util.Map;
3433

@@ -611,9 +610,7 @@ class StepRequestImpl extends ClassVisibleEventRequestImpl
611610
* Make sure this isn't a duplicate
612611
*/
613612
List<StepRequest> requests = stepRequests();
614-
Iterator<StepRequest> iter = requests.iterator();
615-
while (iter.hasNext()) {
616-
StepRequest request = iter.next();
613+
for (StepRequest request : requests) {
617614
if ((request != this) &&
618615
request.isEnabled() &&
619616
request.thread().equals(thread)) {
@@ -880,9 +877,8 @@ public void deleteEventRequest(EventRequest eventRequest) {
880877
public void deleteEventRequests(List<? extends EventRequest> eventRequests) {
881878
validateMirrors(eventRequests);
882879
// copy the eventRequests to avoid ConcurrentModificationException
883-
Iterator<? extends EventRequest> iter = (new ArrayList<>(eventRequests)).iterator();
884-
while (iter.hasNext()) {
885-
((EventRequestImpl)iter.next()).delete();
880+
for (EventRequest eventRequest : new ArrayList<>(eventRequests)) {
881+
((EventRequestImpl)eventRequest).delete();
886882
}
887883
}
888884

@@ -969,9 +965,8 @@ List<? extends EventRequest> unmodifiableRequestList(int eventCmd) {
969965
EventRequest request(int eventCmd, int requestId) {
970966
List<? extends EventRequest> rl = requestList(eventCmd);
971967
synchronized(rl) { // Refer Collections.synchronizedList javadoc.
972-
Iterator<? extends EventRequest> itr = rl.iterator();
973-
while (itr.hasNext()){
974-
EventRequestImpl er = (EventRequestImpl)itr.next();
968+
for (EventRequest eventRequest : rl) {
969+
EventRequestImpl er = (EventRequestImpl)eventRequest;
975970
if (er.id == requestId)
976971
return er;
977972
}

src/jdk.jdi/share/classes/com/sun/tools/jdi/InvokableTypeImpl.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
2626
package com.sun.tools.jdi;
2727

2828
import java.util.ArrayList;
29-
import java.util.Iterator;
3029
import java.util.List;
3130
import java.util.Map;
3231
import java.util.Set;
@@ -141,9 +140,8 @@ boolean isAssignableTo(ReferenceType type) {
141140
return true;
142141
} else {
143142
List<InterfaceType> interfaces = interfaces();
144-
Iterator<InterfaceType> iter = interfaces.iterator();
145-
while (iter.hasNext()) {
146-
InterfaceTypeImpl interfaze = (InterfaceTypeImpl) iter.next();
143+
for (InterfaceType interfaceType : interfaces) {
144+
InterfaceTypeImpl interfaze = (InterfaceTypeImpl)interfaceType;
147145
if (interfaze.isAssignableTo(type)) {
148146
return true;
149147
}
@@ -159,9 +157,8 @@ final void addVisibleMethods(Map<String, Method> methodMap, Set<InterfaceType> s
159157
* parent types first, so that the methods in this class will
160158
* overwrite them in the hash table
161159
*/
162-
Iterator<InterfaceType> iter = interfaces().iterator();
163-
while (iter.hasNext()) {
164-
InterfaceTypeImpl interfaze = (InterfaceTypeImpl) iter.next();
160+
for (InterfaceType interfaceType : interfaces()) {
161+
InterfaceTypeImpl interfaze = (InterfaceTypeImpl)interfaceType;
165162
if (!seenInterfaces.contains(interfaze)) {
166163
interfaze.addVisibleMethods(methodMap, seenInterfaces);
167164
seenInterfaces.add(interfaze);
@@ -177,9 +174,8 @@ final void addVisibleMethods(Map<String, Method> methodMap, Set<InterfaceType> s
177174
final void addInterfaces(List<InterfaceType> list) {
178175
List<InterfaceType> immediate = interfaces();
179176
list.addAll(interfaces());
180-
Iterator<InterfaceType> iter = immediate.iterator();
181-
while (iter.hasNext()) {
182-
InterfaceTypeImpl interfaze = (InterfaceTypeImpl) iter.next();
177+
for (InterfaceType interfaceType : immediate) {
178+
InterfaceTypeImpl interfaze = (InterfaceTypeImpl)interfaceType;
183179
interfaze.addInterfaces(list);
184180
}
185181
ClassTypeImpl superclass = (ClassTypeImpl) superclass();

src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -118,9 +118,8 @@ Method getMethodMirror(long ref) {
118118
// Fetch all methods for the class, check performance impact
119119
// Needs no synchronization now, since methods() returns
120120
// unmodifiable local data
121-
Iterator<Method> it = methods().iterator();
122-
while (it.hasNext()) {
123-
MethodImpl method = (MethodImpl)it.next();
121+
for (Method m : methods()) {
122+
MethodImpl method = (MethodImpl)m;
124123
if (method.ref() == ref) {
125124
return method;
126125
}
@@ -132,9 +131,8 @@ Field getFieldMirror(long ref) {
132131
// Fetch all fields for the class, check performance impact
133132
// Needs no synchronization now, since fields() returns
134133
// unmodifiable local data
135-
Iterator<Field>it = fields().iterator();
136-
while (it.hasNext()) {
137-
FieldImpl field = (FieldImpl)it.next();
134+
for (Field f : fields()) {
135+
FieldImpl field = (FieldImpl)f;
138136
if (field.ref() == ref) {
139137
return field;
140138
}
@@ -420,12 +418,11 @@ public List<Field> visibleFields() {
420418

421419
/* Add inherited, visible fields */
422420
List<? extends ReferenceType> types = inheritedTypes();
423-
Iterator<? extends ReferenceType> iter = types.iterator();
424-
while (iter.hasNext()) {
421+
for (ReferenceType referenceType : types) {
425422
/*
426423
* TO DO: Be defensive and check for cyclic interface inheritance
427424
*/
428-
ReferenceTypeImpl type = (ReferenceTypeImpl)iter.next();
425+
ReferenceTypeImpl type = (ReferenceTypeImpl)referenceType;
429426
type.addVisibleFields(visibleList, visibleTable, ambiguousNames);
430427
}
431428

@@ -454,9 +451,8 @@ void addAllFields(List<Field> fieldList, Set<ReferenceType> typeSet) {
454451

455452
/* Add inherited fields */
456453
List<? extends ReferenceType> types = inheritedTypes();
457-
Iterator<? extends ReferenceType> iter = types.iterator();
458-
while (iter.hasNext()) {
459-
ReferenceTypeImpl type = (ReferenceTypeImpl)iter.next();
454+
for (ReferenceType referenceType : types) {
455+
ReferenceTypeImpl type = (ReferenceTypeImpl)referenceType;
460456
type.addAllFields(fieldList, typeSet);
461457
}
462458
}
@@ -916,9 +912,8 @@ public List<Location> locationsOfLine(String stratumID,
916912

917913
List<Location> list = new ArrayList<Location>();
918914

919-
Iterator<Method> iter = methods.iterator();
920-
while(iter.hasNext()) {
921-
MethodImpl method = (MethodImpl)iter.next();
915+
for (Method m : methods) {
916+
MethodImpl method = (MethodImpl)m;
922917
// eliminate native and abstract to eliminate
923918
// false positives
924919
if (!method.isAbstract() &&

src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
2929
import java.util.ArrayList;
3030
import java.util.Collections;
3131
import java.util.HashMap;
32-
import java.util.Iterator;
3332
import java.util.List;
3433
import java.util.Map;
3534

@@ -187,19 +186,16 @@ public void run() {
187186
// Closing a queue causes a VMDisconnectEvent to
188187
// be put onto the queue.
189188
synchronized(eventQueues) {
190-
Iterator<EventQueue> iter = eventQueues.iterator();
191-
while (iter.hasNext()) {
192-
((EventQueueImpl)iter.next()).close();
189+
for (EventQueue eventQueue : eventQueues) {
190+
((EventQueueImpl)eventQueue).close();
193191
}
194192
}
195193

196194
// indirectly throw VMDisconnectedException to
197195
// command requesters.
198196
synchronized(waitingQueue) {
199-
Iterator<Packet> iter = waitingQueue.values().iterator();
200-
while (iter.hasNext()) {
201-
Packet packet = iter.next();
202-
synchronized(packet) {
197+
for (Packet packet : waitingQueue.values()) {
198+
synchronized (packet) {
203199
packet.notify();
204200
}
205201
}
@@ -258,9 +254,8 @@ private synchronized void controlEventFlow(int maxQueueSize) {
258254
void notifyDequeueEventSet() {
259255
int maxQueueSize = 0;
260256
synchronized(eventQueues) {
261-
Iterator<EventQueue> iter = eventQueues.iterator();
262-
while (iter.hasNext()) {
263-
EventQueueImpl queue = (EventQueueImpl)iter.next();
257+
for (EventQueue eventQueue : eventQueues) {
258+
EventQueueImpl queue = (EventQueueImpl)eventQueue;
264259
maxQueueSize = Math.max(maxQueueSize, queue.size());
265260
}
266261
}
@@ -271,9 +266,8 @@ private void queueEventSet(EventSet eventSet) {
271266
int maxQueueSize = 0;
272267

273268
synchronized(eventQueues) {
274-
Iterator<EventQueue> iter = eventQueues.iterator();
275-
while (iter.hasNext()) {
276-
EventQueueImpl queue = (EventQueueImpl)iter.next();
269+
for (EventQueue eventQueue : eventQueues) {
270+
EventQueueImpl queue = (EventQueueImpl)eventQueue;
277271
queue.enqueue(eventSet);
278272
maxQueueSize = Math.max(maxQueueSize, queue.size());
279273
}

src/jdk.jdi/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -314,9 +314,7 @@ public boolean isAtBreakpoint() {
314314
StackFrame frame = frame(0);
315315
Location location = frame.location();
316316
List<BreakpointRequest> requests = vm.eventRequestManager().breakpointRequests();
317-
Iterator<BreakpointRequest> iter = requests.iterator();
318-
while (iter.hasNext()) {
319-
BreakpointRequest request = iter.next();
317+
for (BreakpointRequest request : requests) {
320318
if (location.equals(request.location())) {
321319
return true;
322320
}

src/jdk.jdi/share/classes/com/sun/tools/jdi/VMState.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -174,9 +174,7 @@ synchronized void addListener(VMListener listener) {
174174
}
175175

176176
synchronized boolean hasListener(VMListener listener) {
177-
Iterator<WeakReference<VMListener>> iter = listeners.iterator();
178-
while (iter.hasNext()) {
179-
WeakReference<VMListener> ref = iter.next();
177+
for (WeakReference<VMListener> ref : listeners) {
180178
if (listener.equals(ref.get())) {
181179
return true;
182180
}

src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,6 @@
4646
import com.sun.jdi.ByteValue;
4747
import com.sun.jdi.CharType;
4848
import com.sun.jdi.CharValue;
49-
import com.sun.jdi.ClassLoaderReference;
5049
import com.sun.jdi.ClassNotLoadedException;
5150
import com.sun.jdi.DoubleType;
5251
import com.sun.jdi.DoubleValue;
@@ -1179,9 +1178,7 @@ void waitForTargetReply(Packet packet) {
11791178

11801179
Type findBootType(String signature) throws ClassNotLoadedException {
11811180
List<ReferenceType> types = retrieveClassesBySignature(signature);
1182-
Iterator<ReferenceType> iter = types.iterator();
1183-
while (iter.hasNext()) {
1184-
ReferenceType type = iter.next();
1181+
for (ReferenceType type : types) {
11851182
if (type.classLoader() == null) {
11861183
return type;
11871184
}

0 commit comments

Comments
 (0)