Skip to content

Commit 1106f8d

Browse files
committed
Fix: use nodes to get signature/CT of code object
1 parent 1b8df0e commit 1106f8d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PythonCextBuiltins.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@
164164
import com.oracle.graal.python.builtins.objects.cext.common.CExtContext.Store;
165165
import com.oracle.graal.python.builtins.objects.cext.common.CExtParseArgumentsNode;
166166
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;
167169
import com.oracle.graal.python.builtins.objects.code.PCode;
168170
import com.oracle.graal.python.builtins.objects.common.DynamicObjectStorage;
169171
import com.oracle.graal.python.builtins.objects.common.HashingCollectionNodes;
@@ -184,6 +186,7 @@
184186
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
185187
import com.oracle.graal.python.builtins.objects.function.PFunction;
186188
import com.oracle.graal.python.builtins.objects.function.PKeyword;
189+
import com.oracle.graal.python.builtins.objects.function.Signature;
187190
import com.oracle.graal.python.builtins.objects.getsetdescriptor.GetSetDescriptor;
188191
import com.oracle.graal.python.builtins.objects.ints.PInt;
189192
import com.oracle.graal.python.builtins.objects.iterator.PSequenceIterator;
@@ -4453,6 +4456,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
44534456
@Cached ToJavaNode elementToJavaNode,
44544457
@Cached CastToJavaStringNode castToJavaStringNode,
44554458
@Cached GetObjectArrayNode getObjectArrayNode,
4459+
@Cached GetCodeSignatureNode getSignatureNode,
4460+
@Cached GetCodeCallTargetNode getCallTargetNode,
44564461
@Cached CreateAndCheckArgumentsNode createAndCheckArgumentsNode,
44574462
@Cached ExpandKeywordStarargsNode expandKeywordStarargsNode,
44584463
@Cached TransformExceptionToNativeNode transformExceptionToNativeNode,
@@ -4486,7 +4491,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
44864491

44874492
// prepare Python frame arguments
44884493
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);
44904496

44914497
// set custom locals
44924498
PArguments.setSpecialArgument(pArguments, locals);
@@ -4502,7 +4508,8 @@ static Object doGeneric(VirtualFrame frame, Object codeWrapper, Object globalsWr
45024508
}
45034509

45044510
try {
4505-
Object result = invokeNode.execute(frame, code.getRootCallTarget(), pArguments);
4511+
RootCallTarget rootCallTarget = getCallTargetNode.execute(code);
4512+
Object result = invokeNode.execute(frame, rootCallTarget, pArguments);
45064513
return toNewRefNode.execute(result);
45074514
} catch (PException e) {
45084515
transformExceptionToNativeNode.execute(frame, e);

0 commit comments

Comments
 (0)