50
50
import com .oracle .graal .python .runtime .PythonContext ;
51
51
import com .oracle .truffle .api .CompilerDirectives ;
52
52
import com .oracle .truffle .api .CompilerDirectives .CompilationFinal ;
53
+ import com .oracle .truffle .api .CompilerDirectives .TruffleBoundary ;
53
54
import com .oracle .truffle .api .RootCallTarget ;
54
55
import com .oracle .truffle .api .Truffle ;
55
56
import com .oracle .truffle .api .frame .Frame ;
@@ -240,7 +241,6 @@ private PFrame.Reference walkLevels(VirtualFrame frame, PFrame.Reference startFr
240
241
* @param frameAccess - the desired {@link FrameInstance} access kind
241
242
*/
242
243
public static Frame getCurrentFrame (Node requestingNode , FrameInstance .FrameAccess frameAccess ) {
243
- CompilerDirectives .transferToInterpreterAndInvalidate ();
244
244
return getFrame (Objects .requireNonNull (requestingNode ), null , frameAccess , FrameSelector .ALL_PYTHON_FRAMES , 0 );
245
245
}
246
246
@@ -260,8 +260,8 @@ public static Frame getCallerFrame(PFrame.Reference startFrame, FrameInstance.Fr
260
260
return getFrame (null , Objects .requireNonNull (startFrame ), frameAccess , selector , level );
261
261
}
262
262
263
+ @ TruffleBoundary
263
264
private static Frame getFrame (Node requestingNode , PFrame .Reference startFrame , FrameInstance .FrameAccess frameAccess , FrameSelector selector , int level ) {
264
- assert CompilerDirectives .inInterpreter ();
265
265
final Frame [] outputFrame = new Frame [1 ];
266
266
Truffle .getRuntime ().iterateFrames (new FrameInstanceVisitor <Frame >() {
267
267
int i = -1 ;
0 commit comments