Skip to content

Commit 28d5206

Browse files
committed
Use an int[] instead of Memo for holding an int to avoid boxing
1 parent 0ae28b9 commit 28d5206

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/main/java/org/truffleruby/core/binding/TruffleBindingNodes.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ protected Object ofCaller() {
3333
/* When you use this method you're asking for the binding of the caller at the call site. When we get into
3434
* this method, that is then the binding of the caller of the caller. */
3535

36-
final Memo<Integer> frameCount = new Memo<>(0);
36+
final int[] frameCount = new int[]{ 0 };
3737
final Memo<SourceSection> sourceSection = new Memo<>(null);
3838

3939
final MaterializedFrame frame = Truffle.getRuntime().iterateFrames(frameInstance -> {
40-
if (frameCount.get() == 2) {
40+
if (frameCount[0] == 2) {
4141
sourceSection.set(frameInstance.getCallNode().getEncapsulatingSourceSection());
4242
return frameInstance.getFrame(FrameAccess.MATERIALIZE).materialize();
4343
} else {
44-
frameCount.set(frameCount.get() + 1);
44+
frameCount[0] += 1;
4545
return null;
4646
}
4747
});

src/main/java/org/truffleruby/language/TruffleBootNodes.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.truffleruby.builtins.CoreMethodArrayArgumentsNode;
2626
import org.truffleruby.builtins.CoreMethodNode;
2727
import org.truffleruby.builtins.CoreModule;
28-
import org.truffleruby.collections.Memo;
2928
import org.truffleruby.core.array.RubyArray;
3029
import org.truffleruby.core.encoding.Encodings;
3130
import org.truffleruby.core.rope.CodeRange;
@@ -267,13 +266,13 @@ public abstract static class SourceOfCallerNode extends CoreMethodArrayArguments
267266
@TruffleBoundary
268267
@Specialization
269268
protected Object sourceOfCaller() {
270-
final Memo<Integer> frameCount = new Memo<>(0);
269+
final int[] frameCount = new int[]{ 0 };
271270

272271
final Source source = Truffle.getRuntime().iterateFrames(frameInstance -> {
273-
if (frameCount.get() == 2) {
272+
if (frameCount[0] == 2) {
274273
return frameInstance.getCallNode().getEncapsulatingSourceSection().getSource();
275274
} else {
276-
frameCount.set(frameCount.get() + 1);
275+
frameCount[0] += 1;
277276
return null;
278277
}
279278
});

0 commit comments

Comments
 (0)