Skip to content

Commit 5dce497

Browse files
committed
PyObject_GenericGet/SetAttr nodes should go directly after ObjetcBuitlins.Get/SetAttributeNode
1 parent fbfb00a commit 5dce497

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
package com.oracle.graal.python.builtins.modules.cext;
4242

4343
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
44-
import static com.oracle.graal.python.nodes.ErrorMessages.RETURNED_NONBYTES;
4544
import static com.oracle.graal.python.nodes.ErrorMessages.UNHASHABLE_TYPE_P;
4645
import static com.oracle.graal.python.nodes.SpecialMethodNames.__BYTES__;
4746

@@ -67,19 +66,20 @@
6766
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
6867
import com.oracle.graal.python.builtins.objects.function.PKeyword;
6968
import com.oracle.graal.python.builtins.objects.ints.PInt;
69+
import com.oracle.graal.python.builtins.objects.object.ObjectBuiltins.GetAttributeNode;
70+
import com.oracle.graal.python.builtins.objects.object.ObjectBuiltins.SetattrNode;
7071
import com.oracle.graal.python.lib.PyObjectAsFileDescriptor;
7172
import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs;
7273
import com.oracle.graal.python.lib.PyObjectDelItem;
7374
import com.oracle.graal.python.lib.PyObjectLookupAttr;
7475
import com.oracle.graal.python.lib.PyObjectReprAsObjectNode;
7576
import com.oracle.graal.python.lib.PyObjectSetItem;
7677
import com.oracle.graal.python.lib.PyObjectStrAsObjectNode;
78+
import static com.oracle.graal.python.nodes.ErrorMessages.RETURNED_NONBYTES;
7779
import com.oracle.graal.python.nodes.SpecialMethodNames;
7880
import static com.oracle.graal.python.nodes.SpecialMethodNames.__SETATTR__;
7981
import com.oracle.graal.python.nodes.attributes.GetAttributeNode.GetAnyAttributeNode;
8082
import com.oracle.graal.python.nodes.call.CallNode;
81-
import com.oracle.graal.python.nodes.call.special.CallBinaryMethodNode;
82-
import com.oracle.graal.python.nodes.call.special.CallTernaryMethodNode;
8383
import com.oracle.graal.python.nodes.call.special.CallUnaryMethodNode;
8484
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
8585
import com.oracle.graal.python.nodes.expression.BinaryComparisonNode;
@@ -483,12 +483,10 @@ Object asFileDescriptor(VirtualFrame frame, Object obj,
483483
abstract static class PyObjectGenericGetAttrNode extends PythonBinaryBuiltinNode {
484484
@Specialization
485485
Object getAttr(VirtualFrame frame, Object obj, Object attr,
486-
@Cached PyObjectLookupAttr lookupSetAttrNode,
487-
@Cached CallBinaryMethodNode callNode,
486+
@Cached GetAttributeNode getAttrNode,
488487
@Cached TransformExceptionToNativeNode transformExceptionToNativeNode) {
489488
try {
490-
Object setAttrCallable = lookupSetAttrNode.execute(frame, getCore().lookupType(PythonBuiltinClassType.PythonObject), SpecialMethodNames.__GETATTRIBUTE__);
491-
return callNode.executeObject(frame, setAttrCallable, obj, attr);
489+
return getAttrNode.execute(frame, getCore().lookupType(PythonBuiltinClassType.PythonObject), SpecialMethodNames.__GETATTRIBUTE__);
492490
} catch (PException e) {
493491
transformExceptionToNativeNode.execute(frame, e);
494492
return getContext().getNativeNull();
@@ -501,12 +499,10 @@ Object getAttr(VirtualFrame frame, Object obj, Object attr,
501499
abstract static class PyObjectGenericSetAttrNode extends PythonTernaryBuiltinNode {
502500
@Specialization
503501
int setAttr(VirtualFrame frame, Object obj, Object attr, Object value,
504-
@Cached PyObjectLookupAttr lookupSetAttrNode,
505-
@Cached CallTernaryMethodNode callNode,
502+
@Cached SetattrNode setAttrNode,
506503
@Cached TransformExceptionToNativeNode transformExceptionToNativeNode) {
507504
try {
508-
Object setAttrCallable = lookupSetAttrNode.execute(frame, getCore().lookupType(PythonBuiltinClassType.PythonObject), __SETATTR__);
509-
callNode.execute(frame, setAttrCallable, obj, attr, value);
505+
setAttrNode.execute(frame, getCore().lookupType(PythonBuiltinClassType.PythonObject), __SETATTR__, value);
510506
return 0;
511507
} catch (PException e) {
512508
transformExceptionToNativeNode.execute(frame, e);

0 commit comments

Comments
 (0)