@@ -212,7 +212,7 @@ public abstract static class SyncFrameValuesNode extends Node {
212
212
213
213
public abstract void execute (PFrame pyFrame , Frame frameToSync );
214
214
215
- @ Specialization (guards = {"hasLocals( pyFrame)" , "frameToSync.getFrameDescriptor() == cachedFd" ,
215
+ @ Specialization (guards = {"! pyFrame.hasCustomLocals( )" , "frameToSync.getFrameDescriptor() == cachedFd" ,
216
216
"variableSlotCount(cachedFd) < 32" }, limit = "1" )
217
217
@ ExplodeLoop
218
218
static void doSyncExploded (PFrame pyFrame , Frame frameToSync ,
@@ -225,7 +225,7 @@ static void doSyncExploded(PFrame pyFrame, Frame frameToSync,
225
225
}
226
226
}
227
227
228
- @ Specialization (guards = "hasLocals( pyFrame)" , replaces = "doSyncExploded" )
228
+ @ Specialization (guards = "! pyFrame.hasCustomLocals( )" , replaces = "doSyncExploded" )
229
229
static void doSyncLoop (PFrame pyFrame , Frame frameToSync ) {
230
230
MaterializedFrame target = pyFrame .getLocals ();
231
231
int slotCount = variableSlotCount (frameToSync .getFrameDescriptor ());
@@ -234,16 +234,12 @@ static void doSyncLoop(PFrame pyFrame, Frame frameToSync) {
234
234
}
235
235
}
236
236
237
- @ Specialization (guards = "!hasLocals( pyFrame)" )
237
+ @ Specialization (guards = "pyFrame.hasCustomLocals( )" )
238
238
@ SuppressWarnings ("unused" )
239
239
static void doCustomLocals (PFrame pyFrame , Frame frameToSync ) {
240
240
// nothing to do
241
241
}
242
242
243
- protected static boolean hasLocals (PFrame pyFrame ) {
244
- return pyFrame .getLocals () != null ;
245
- }
246
-
247
243
protected static int variableSlotCount (FrameDescriptor fd ) {
248
244
FrameInfo info = (FrameInfo ) fd .getInfo ();
249
245
if (info == null ) {
0 commit comments