Skip to content

Commit 8891032

Browse files
committed
Minor refactoring.
1 parent d1cb3d1 commit 8891032

File tree

3 files changed

+8
-20
lines changed

3 files changed

+8
-20
lines changed

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

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

8686
private Object[] keptObjects;
87+
@SuppressWarnings("unused")
8788
private Object[] oldKeptObjects = null;
8889

8990
private int counter = 0;
@@ -94,25 +95,15 @@ public MarkingService(RubyContext context, ReferenceProcessor referenceProcessor
9495
keptObjects = new Object[cacheSize];
9596
}
9697

97-
public void keepObject(Object object) {
98-
if (addToKeptObjects(object)) {
99-
runAllMarkers();
100-
}
101-
}
102-
103-
private synchronized boolean addToKeptObjects(Object object) {
98+
public synchronized void keepObject(Object object) {
10499
final ArrayList<Object> keepList = stackPreservation.get().peekFirst();
105100
if (keepList != null) {
106101
keepList.add(object);
107102
}
108103
keptObjects[counter++] = object;
109104
if (counter == cacheSize) {
110-
counter = 0;
111-
oldKeptObjects = keptObjects;
112-
keptObjects = new Object[cacheSize];
113-
return true;
105+
runAllMarkers();
114106
}
115-
return false;
116107
}
117108

118109
@TruffleBoundary
@@ -125,13 +116,10 @@ public void popStackPreservationFrame() {
125116
stackPreservation.get().pop();
126117
}
127118

128-
public synchronized void runMarkersAndDropKeptList() {
119+
public synchronized void runAllMarkers() {
120+
counter = 0;
129121
oldKeptObjects = keptObjects;
130122
keptObjects = new Object[cacheSize];
131-
runAllMarkers();
132-
}
133-
134-
private synchronized void runAllMarkers() {
135123
MarkerReference currentMarker = getFirst();
136124
MarkerReference nextMarker;
137125
while (currentMarker != null) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public static abstract class VMGCStartPrimitiveNode extends PrimitiveArrayArgume
109109
@TruffleBoundary
110110
@Specialization
111111
public DynamicObject vmGCStart() {
112-
getContext().getMarkingService().runMarkersAndDropKeptList();
112+
getContext().getMarkingService().runAllMarkers();
113113
System.gc();
114114
return nil();
115115
}

src/main/java/org/truffleruby/language/objects/ObjectGraph.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static Set<DynamicObject> newRubyObjectSet() {
4040

4141
@TruffleBoundary
4242
public static Set<DynamicObject> stopAndGetAllObjects(Node currentNode, final RubyContext context) {
43-
context.getMarkingService().runMarkersAndDropKeptList();
43+
context.getMarkingService().runAllMarkers();
4444
final Set<DynamicObject> visited = newRubyObjectSet();
4545

4646
final Thread initiatingJavaThread = Thread.currentThread();
@@ -131,7 +131,7 @@ public static Set<DynamicObject> getAdjacentObjects(DynamicObject object) {
131131
}
132132
} else if (propertyValue instanceof Object[]) {
133133
for (Object element : (Object[]) propertyValue) {
134-
// Needed to get wrappers set by Truffle::Cext.set_mark_list_on_object.
134+
// Needed to get wrappers set by Truffle::CExt.set_mark_list_on_object.
135135
if (element instanceof ValueWrapper) {
136136
element = ((ValueWrapper) element).getObject();
137137
}

0 commit comments

Comments
 (0)