Skip to content

Commit 1420fc3

Browse files
committed
Changes based on review.
1 parent 53bb414 commit 1420fc3

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/main/java/org/truffleruby/core/MarkingService.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ public ReferenceProcessingService<MarkerReference> service() {
8484
private final ThreadLocal<Deque<ArrayList<Object>>> stackPreservation = ThreadLocal.withInitial(() -> new ArrayDeque<>());
8585

8686
private Object[] keptObjects;
87-
@SuppressWarnings("unused")
8887
private final ArrayDeque<Object[]> oldKeptObjects = new ArrayDeque<Object[]>();
8988

9089
private int counter = 0;
@@ -119,18 +118,21 @@ public void popStackPreservationFrame() {
119118
public synchronized void runAllMarkers() {
120119
counter = 0;
121120
oldKeptObjects.push(keptObjects);
122-
keptObjects = new Object[cacheSize];
123-
MarkerReference currentMarker = getFirst();
124-
MarkerReference nextMarker;
125-
while (currentMarker != null) {
126-
nextMarker = currentMarker.next;
127-
runMarker(currentMarker);
128-
if (nextMarker == currentMarker) {
129-
throw new Error("The MarkerReference linked list structure has become broken.");
121+
try {
122+
keptObjects = new Object[cacheSize];
123+
MarkerReference currentMarker = getFirst();
124+
MarkerReference nextMarker;
125+
while (currentMarker != null) {
126+
nextMarker = currentMarker.next;
127+
runMarker(currentMarker);
128+
if (nextMarker == currentMarker) {
129+
throw new Error("The MarkerReference linked list structure has become broken.");
130+
}
131+
currentMarker = nextMarker;
130132
}
131-
currentMarker = nextMarker;
133+
} finally {
134+
oldKeptObjects.pop();
132135
}
133-
oldKeptObjects.pop();
134136
}
135137

136138
public void addMarker(DynamicObject object, MarkerAction action) {

0 commit comments

Comments
 (0)