File tree 2 files changed +3
-20
lines changed
src/main/java/org/truffleruby
2 files changed +3
-20
lines changed Original file line number Diff line number Diff line change @@ -445,9 +445,9 @@ public abstract static class MarkObjectOnCallExit extends PrimitiveArrayArgument
445
445
446
446
@ Specialization
447
447
Object markOnCallExit (Object object ,
448
- @ Cached WrapNode wrapNode ,
449
- @ Cached MarkingServiceNodes . QueueForMarkOnExitNode markOnExitNode ) {
450
- markOnExitNode . execute ( wrapNode . execute ( object ) );
448
+ @ Cached WrapNode wrapNode ) {
449
+ ValueWrapper wrapper = wrapNode . execute ( object );
450
+ getLanguage (). getCurrentThread (). getCurrentFiber (). extensionCallStack . markOnExitObject ( wrapper );
451
451
return nil ;
452
452
}
453
453
}
Original file line number Diff line number Diff line change 11
11
12
12
import com .oracle .truffle .api .dsl .GenerateCached ;
13
13
import com .oracle .truffle .api .dsl .GenerateInline ;
14
- import com .oracle .truffle .api .dsl .NeverDefault ;
15
14
import com .oracle .truffle .api .dsl .NonIdempotent ;
16
15
import com .oracle .truffle .api .nodes .Node ;
17
16
import com .oracle .truffle .api .profiles .InlinedConditionProfile ;
@@ -76,22 +75,6 @@ protected static ExtensionCallStack getStack(Node node) {
76
75
}
77
76
}
78
77
79
- public static final class QueueForMarkOnExitNode extends RubyBaseNode {
80
-
81
- @ NeverDefault
82
- public static QueueForMarkOnExitNode create () {
83
- return new QueueForMarkOnExitNode ();
84
- }
85
-
86
- public void execute (ValueWrapper object ) {
87
- addToList (getLanguage ().getCurrentThread ().getCurrentFiber ().extensionCallStack , object );
88
- }
89
-
90
- protected void addToList (ExtensionCallStack stack , ValueWrapper object ) {
91
- stack .markOnExitObject (object );
92
- }
93
- }
94
-
95
78
@ GenerateInline
96
79
@ GenerateCached (false )
97
80
public abstract static class RunMarkOnExitNode extends RubyBaseNode {
You can’t perform that action at this time.
0 commit comments