From 9f79f73bd60b459531c873912217018f7874fec4 Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Tue, 4 Jul 2023 15:24:08 +0200 Subject: [PATCH] [GR-47041] Follow OptimizedCallTarget package rename in isCallBoundary() --- .../language/backtrace/BacktraceInterleaver.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/truffleruby/language/backtrace/BacktraceInterleaver.java b/src/main/java/org/truffleruby/language/backtrace/BacktraceInterleaver.java index 052250adaf40..c1d130afe50c 100644 --- a/src/main/java/org/truffleruby/language/backtrace/BacktraceInterleaver.java +++ b/src/main/java/org/truffleruby/language/backtrace/BacktraceInterleaver.java @@ -50,11 +50,16 @@ public static List interleave(List rubyBacktrace, StackTraceElem return interleaved; } + public static boolean isCallBoundary(StackTraceElement element) { - return (element.getClassName().equals("org.graalvm.compiler.truffle.runtime.OptimizedCallTarget") && - element.getMethodName().equals("executeRootNode")) || - (element.getClassName().equals("com.oracle.truffle.api.impl.DefaultCallTarget") && - element.getMethodName().startsWith("call")); + // GR-47041: we need com.oracle.truffle.api.impl.Accessor.RuntimeSupport.isGuestCallStackFrame but it's not public + String className = element.getClassName(); + String methodName = element.getMethodName(); + return ((className.equals("com.oracle.truffle.runtime.OptimizedCallTarget") || + className.equals("org.graalvm.compiler.truffle.runtime.OptimizedCallTarget")) && + methodName.equals("executeRootNode")) || + (className.equals("com.oracle.truffle.api.impl.DefaultCallTarget") && + methodName.equals("callDirectOrIndirect")); } private static boolean isIntoRuby(StackTraceElement[] elements, int index) {