Skip to content

Commit 832fbbc

Browse files
committed
Fix GraphKit invoke source position.
1 parent 7a945b9 commit 832fbbc

File tree

1 file changed

+12
-3
lines changed
  • compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements

1 file changed

+12
-3
lines changed

compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/GraphKit.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,13 +239,22 @@ public ResolvedJavaMethod findMethod(Class<?> declaringClass, String name, Class
239239
}
240240
}
241241

242+
private NodeSourcePosition invokePosition(int invokeBci) {
243+
if (graph.trackNodeSourcePosition()) {
244+
NodeSourcePosition currentPosition = graph.currentNodeSourcePosition();
245+
assert currentPosition.getCaller() == null : "The GraphKit currentPosition should be a top level position.";
246+
return NodeSourcePosition.substitution(currentPosition.getMethod(), invokeBci);
247+
}
248+
return null;
249+
}
250+
242251
/**
243252
* Creates and appends an {@link InvokeNode} for a call to a given method with a given set of
244253
* arguments.
245254
*/
246255
@SuppressWarnings("try")
247256
public InvokeNode createInvoke(ResolvedJavaMethod method, InvokeKind invokeKind, FrameStateBuilder frameStateBuilder, int bci, ValueNode... args) {
248-
try (DebugCloseable context = graph.withNodeSourcePosition(NodeSourcePosition.substitution(graph.currentNodeSourcePosition(), method))) {
257+
try (DebugCloseable context = graph.withNodeSourcePosition(invokePosition(bci))) {
249258
assert method.isStatic() == (invokeKind == InvokeKind.Static);
250259
Signature signature = method.getSignature();
251260
JavaType returnType = signature.getReturnType(null);
@@ -282,7 +291,7 @@ public InvokeNode createIntrinsicInvoke(ResolvedJavaMethod method, ValueNode...
282291
@SuppressWarnings("try")
283292
public InvokeWithExceptionNode createInvokeWithExceptionAndUnwind(ResolvedJavaMethod method, InvokeKind invokeKind,
284293
FrameStateBuilder frameStateBuilder, int invokeBci, ValueNode... args) {
285-
try (DebugCloseable context = graph.withNodeSourcePosition(NodeSourcePosition.substitution(graph.currentNodeSourcePosition(), method))) {
294+
try (DebugCloseable context = graph.withNodeSourcePosition(invokePosition(invokeBci))) {
286295
InvokeWithExceptionNode result = startInvokeWithException(method, invokeKind, frameStateBuilder, invokeBci, args);
287296
exceptionPart();
288297
ExceptionObjectNode exception = exceptionObject();
@@ -294,7 +303,7 @@ public InvokeWithExceptionNode createInvokeWithExceptionAndUnwind(ResolvedJavaMe
294303

295304
@SuppressWarnings("try")
296305
public InvokeWithExceptionNode createInvokeWithExceptionAndUnwind(MethodCallTargetNode callTarget, FrameStateBuilder frameStateBuilder, int invokeBci) {
297-
try (DebugCloseable context = graph.withNodeSourcePosition(NodeSourcePosition.substitution(graph.currentNodeSourcePosition(), callTarget.targetMethod()))) {
306+
try (DebugCloseable context = graph.withNodeSourcePosition(invokePosition(invokeBci))) {
298307
InvokeWithExceptionNode result = startInvokeWithException(callTarget, frameStateBuilder, invokeBci);
299308
exceptionPart();
300309
ExceptionObjectNode exception = exceptionObject();

0 commit comments

Comments
 (0)