Skip to content

Commit fca61cf

Browse files
committed
Relax setting callerFlags on indirect call data when stackwalking
1 parent 0cdeb1d commit fca61cf

File tree

1 file changed

+2
-1
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/frame

1 file changed

+2
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/frame/ReadFrameNode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,6 @@ public StackWalkResult visitFrame(FrameInstance frameInstance) {
380380
prevRootNode = rootNode;
381381
return null;
382382
}
383-
IndirectCallData.setCallerFlagsOnIndirectCallData(callNode, callerFlags);
384383
if (i < 0 && startFrame != null) {
385384
// We are still looking for the start frame
386385
Frame roFrame = ReadFrameNode.getFrame(frameInstance, FrameInstance.FrameAccess.READ_ONLY);
@@ -395,6 +394,7 @@ public StackWalkResult visitFrame(FrameInstance frameInstance) {
395394
if (i == level) {
396395
Frame frame = ReadFrameNode.getFrame(frameInstance, frameAccess);
397396
assert PArguments.isPythonFrame(frame);
397+
IndirectCallData.setCallerFlagsOnIndirectCallData(callNode, callerFlags);
398398
if (prevRootNode instanceof PRootNode prevPRootNode && prevPRootNode.setsUpCalleeContext()) {
399399
// Update the flags in the callee
400400
prevPRootNode.updateCallerFlags(callerFlags);
@@ -406,6 +406,7 @@ public StackWalkResult visitFrame(FrameInstance frameInstance) {
406406
}
407407
// For any Python root node we traverse we need the PFrame.Reference to be passed in
408408
// call arguments next time.
409+
IndirectCallData.setCallerFlagsOnIndirectCallData(callNode, CallerFlags.NEEDS_FRAME_REFERENCE);
409410
pRootNode.updateCallerFlags(CallerFlags.NEEDS_FRAME_REFERENCE);
410411
prevRootNode = pRootNode;
411412
return null; // if 'null' continue iterating

0 commit comments

Comments
 (0)