164
164
import com .oracle .graal .python .builtins .objects .cext .common .CExtContext .Store ;
165
165
import com .oracle .graal .python .builtins .objects .cext .common .CExtParseArgumentsNode ;
166
166
import com .oracle .graal .python .builtins .objects .cext .common .CExtParseArgumentsNode .SplitFormatStringNode ;
167
+ import com .oracle .graal .python .builtins .objects .code .CodeNodes .GetCodeCallTargetNode ;
168
+ import com .oracle .graal .python .builtins .objects .code .CodeNodes .GetCodeSignatureNode ;
167
169
import com .oracle .graal .python .builtins .objects .code .PCode ;
168
170
import com .oracle .graal .python .builtins .objects .common .DynamicObjectStorage ;
169
171
import com .oracle .graal .python .builtins .objects .common .HashingCollectionNodes ;
184
186
import com .oracle .graal .python .builtins .objects .function .PBuiltinFunction ;
185
187
import com .oracle .graal .python .builtins .objects .function .PFunction ;
186
188
import com .oracle .graal .python .builtins .objects .function .PKeyword ;
189
+ import com .oracle .graal .python .builtins .objects .function .Signature ;
187
190
import com .oracle .graal .python .builtins .objects .getsetdescriptor .GetSetDescriptor ;
188
191
import com .oracle .graal .python .builtins .objects .ints .PInt ;
189
192
import com .oracle .graal .python .builtins .objects .iterator .PSequenceIterator ;
@@ -4453,6 +4456,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
4453
4456
@ Cached ToJavaNode elementToJavaNode ,
4454
4457
@ Cached CastToJavaStringNode castToJavaStringNode ,
4455
4458
@ Cached GetObjectArrayNode getObjectArrayNode ,
4459
+ @ Cached GetCodeSignatureNode getSignatureNode ,
4460
+ @ Cached GetCodeCallTargetNode getCallTargetNode ,
4456
4461
@ Cached CreateAndCheckArgumentsNode createAndCheckArgumentsNode ,
4457
4462
@ Cached ExpandKeywordStarargsNode expandKeywordStarargsNode ,
4458
4463
@ Cached TransformExceptionToNativeNode transformExceptionToNativeNode ,
@@ -4486,7 +4491,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
4486
4491
4487
4492
// prepare Python frame arguments
4488
4493
Object [] userArguments = unwrapArray (argumentArrayPtr , ptrLib , elementToJavaNode );
4489
- Object [] pArguments = createAndCheckArgumentsNode .execute (code , userArguments , keywords , code .getSignature (), null , defaults , kwdefaults , false );
4494
+ Signature signature = getSignatureNode .execute (code );
4495
+ Object [] pArguments = createAndCheckArgumentsNode .execute (code , userArguments , keywords , signature , null , defaults , kwdefaults , false );
4490
4496
4491
4497
// set custom locals
4492
4498
PArguments .setSpecialArgument (pArguments , locals );
@@ -4502,7 +4508,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
4502
4508
}
4503
4509
4504
4510
try {
4505
- Object result = invokeNode .execute (frame , code .getRootCallTarget (), pArguments );
4511
+ RootCallTarget rootCallTarget = getCallTargetNode .execute (code );
4512
+ Object result = invokeNode .execute (frame , rootCallTarget , pArguments );
4506
4513
return toNewRefNode .execute (result );
4507
4514
} catch (PException e ) {
4508
4515
transformExceptionToNativeNode .execute (frame , e );
0 commit comments