Skip to content

Commit

Permalink
Showing 2 changed files with 12 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -17,9 +17,11 @@
import com.oracle.truffle.api.nodes.InvalidAssumptionException;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.source.SourceSection;

import org.jcodings.specific.UTF8Encoding;
import org.jruby.RubyString;
import org.jruby.truffle.nodes.RubyNode;
import org.jruby.truffle.nodes.core.ProcNodes;
import org.jruby.truffle.runtime.RubyArguments;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.layouts.Layouts;
@@ -87,7 +89,7 @@ public void trace(VirtualFrame frame) {
};

try {
callNode.call(frame, RubyArguments.pack(Layouts.PROC.getMethod(traceFunc), Layouts.PROC.getDeclarationFrame(traceFunc), Layouts.PROC.getSelf(traceFunc), Layouts.PROC.getBlock(traceFunc), args));
callNode.call(frame, ProcNodes.packArguments(traceFunc, args));
} finally {
context.getTraceManager().setInTraceFunc(false);
}
Original file line number Diff line number Diff line change
@@ -47,15 +47,19 @@
@CoreClass(name = "Proc")
public abstract class ProcNodes {

public static Object rootCall(DynamicObject proc, Object... args) {
assert RubyGuards.isRubyProc(proc);

return Layouts.PROC.getCallTargetForType(proc).call(RubyArguments.pack(
public static Object[] packArguments(DynamicObject proc, Object... args) {
return RubyArguments.pack(
Layouts.PROC.getMethod(proc),
Layouts.PROC.getDeclarationFrame(proc),
Layouts.PROC.getSelf(proc),
Layouts.PROC.getBlock(proc),
args));
args);
}

public static Object rootCall(DynamicObject proc, Object... args) {
assert RubyGuards.isRubyProc(proc);

return Layouts.PROC.getCallTargetForType(proc).call(packArguments(proc, args));
}

public static DynamicObject createRubyProc(DynamicObject procClass, Type type, SharedMethodInfo sharedMethodInfo, CallTarget callTargetForProcs,

0 comments on commit 59b9742

Please sign in to comment.