Skip to content

Commit a1f6b3c

Browse files
committed
Convert RunMarkOnExitNode to DSL inlinable
1 parent 321b8ab commit a1f6b3c

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

src/main/java/org/truffleruby/cext/CExtNodes.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ Object callWithCExtLockAndFrame(
206206
try {
207207
return InteropNodes.execute(this, receiver, args, receivers, translateInteropExceptionNode);
208208
} finally {
209-
runMarksNode.execute(extensionStack);
209+
runMarksNode.execute(this, extensionStack);
210210
if (!owned) {
211211
MutexOperations.unlockInternal(lock);
212212
}
@@ -215,7 +215,7 @@ Object callWithCExtLockAndFrame(
215215
try {
216216
return InteropNodes.execute(this, receiver, args, receivers, translateInteropExceptionNode);
217217
} finally {
218-
runMarksNode.execute(extensionStack);
218+
runMarksNode.execute(this, extensionStack);
219219
}
220220
}
221221

@@ -258,7 +258,7 @@ Object callWithCExtLockAndFrame(
258258
return unwrapNode.execute(this,
259259
InteropNodes.execute(this, receiver, args, receivers, translateInteropExceptionNode));
260260
} finally {
261-
runMarksNode.execute(extensionStack);
261+
runMarksNode.execute(this, extensionStack);
262262
if (!owned) {
263263
MutexOperations.unlockInternal(lock);
264264
}
@@ -268,7 +268,7 @@ Object callWithCExtLockAndFrame(
268268
return unwrapNode.execute(this,
269269
InteropNodes.execute(this, receiver, args, receivers, translateInteropExceptionNode));
270270
} finally {
271-
runMarksNode.execute(extensionStack);
271+
runMarksNode.execute(this, extensionStack);
272272
}
273273
}
274274

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,26 +87,28 @@ protected void addToList(ExtensionCallStack stack, ValueWrapper object) {
8787
}
8888
}
8989

90+
@GenerateInline
91+
@GenerateCached(false)
9092
public abstract static class RunMarkOnExitNode extends RubyBaseNode {
9193

92-
public abstract void execute(ExtensionCallStack stack);
94+
public abstract void execute(Node node, ExtensionCallStack stack);
9395

9496
@Specialization(guards = "!stack.hasMarkObjects()")
95-
void nothingToMark(ExtensionCallStack stack) {
97+
static void nothingToMark(ExtensionCallStack stack) {
9698
// Do nothing.
9799
}
98100

99101
@Specialization(guards = "stack.hasSingleMarkObject()")
100-
void markSingleObject(ExtensionCallStack stack,
101-
@Cached @Shared DispatchNode callNode) {
102+
static void markSingleObject(Node node, ExtensionCallStack stack,
103+
@Cached(inline = false) @Shared DispatchNode callNode) {
102104
ValueWrapper value = stack.getSingleMarkObject();
103-
callNode.call(getContext().getCoreLibrary().truffleCExtModule, "run_marker", value.getObject());
105+
callNode.call(getContext(node).getCoreLibrary().truffleCExtModule, "run_marker", value.getObject());
104106
}
105107

106108
@TruffleBoundary
107109
@Specialization(guards = { "stack.hasMarkObjects()", "!stack.hasSingleMarkObject()" })
108-
void marksToRun(ExtensionCallStack stack,
109-
@Cached @Shared DispatchNode callNode) {
110+
static void marksToRun(Node node, ExtensionCallStack stack,
111+
@Cached(inline = false) @Shared DispatchNode callNode) {
110112
// Run the markers...
111113
var valuesForMarking = stack.getMarkOnExitObjects();
112114
// Push a new stack frame because we should
@@ -115,17 +117,11 @@ void marksToRun(ExtensionCallStack stack,
115117
stack.push(false, nil, nil);
116118
try {
117119
for (var value : valuesForMarking) {
118-
callNode.call(getContext().getCoreLibrary().truffleCExtModule, "run_marker", value.getObject());
120+
callNode.call(getContext(node).getCoreLibrary().truffleCExtModule, "run_marker", value.getObject());
119121
}
120122
} finally {
121123
stack.pop();
122124
}
123125
}
124-
125-
126-
@NeverDefault
127-
public static RunMarkOnExitNode create() {
128-
return MarkingServiceNodesFactory.RunMarkOnExitNodeGen.create();
129-
}
130126
}
131127
}

0 commit comments

Comments
 (0)