Skip to content

Commit 9fa32b9

Browse files
committed
Implement ctx_DelItem*
1 parent 763c658 commit 9fa32b9

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyContextFunctions.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@
133133
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyContextVarGetNodeGen;
134134
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyContextVarNewNodeGen;
135135
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyContextVarSetNodeGen;
136+
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyDelItemNodeGen;
137+
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyDelItemSNodeGen;
136138
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyDictCheckNodeGen;
137139
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyDictCopyNodeGen;
138140
import com.oracle.graal.python.builtins.objects.cext.hpy.GraalHPyContextFunctionsFactory.GraalHPyDictKeysNodeGen;
@@ -316,6 +318,7 @@
316318
import com.oracle.graal.python.lib.PyIndexCheckNode;
317319
import com.oracle.graal.python.lib.PyLongAsDoubleNode;
318320
import com.oracle.graal.python.lib.PyNumberIndexNode;
321+
import com.oracle.graal.python.lib.PyObjectDelItem;
319322
import com.oracle.graal.python.lib.PyObjectGetAttr;
320323
import com.oracle.graal.python.lib.PyObjectGetItem;
321324
import com.oracle.graal.python.lib.PyObjectGetMethod;
@@ -522,6 +525,8 @@ public static GraalHPyContextFunction create(HPyContextMember member) {
522525
case CTX_GETITEM_S -> GraalHPyGetItemSNodeGen.create();
523526
case CTX_SETITEM, CTX_SETITEM_I -> GraalHPySetItemNodeGen.create();
524527
case CTX_SETITEM_S -> GraalHPySetItemSNodeGen.create();
528+
case CTX_DELITEM, CTX_DELITEM_I -> GraalHPyDelItemNodeGen.create();
529+
case CTX_DELITEM_S -> GraalHPyDelItemSNodeGen.create();
525530
case CTX_FROMPYOBJECT -> GraalHPyFromPyObjectNodeGen.create();
526531
case CTX_NEW -> GraalHPyNewNodeGen.create();
527532
case CTX_ASSTRUCT_OBJECT, CTX_ASSTRUCT_LEGACY, CTX_ASSTRUCT_TYPE, CTX_ASSTRUCT_LONG, CTX_ASSTRUCT_FLOAT, CTX_ASSTRUCT_UNICODE, CTX_ASSTRUCT_TUPLE, CTX_ASSTRUCT_LIST -> GraalHPyCastNodeGen.create();
@@ -686,6 +691,8 @@ public static GraalHPyContextFunction getUncached(HPyContextMember member) {
686691
case CTX_GETITEM_S -> GraalHPyGetItemSNodeGen.getUncached();
687692
case CTX_SETITEM, CTX_SETITEM_I -> GraalHPySetItemNodeGen.getUncached();
688693
case CTX_SETITEM_S -> GraalHPySetItemSNodeGen.getUncached();
694+
case CTX_DELITEM, CTX_DELITEM_I -> GraalHPyDelItemNodeGen.getUncached();
695+
case CTX_DELITEM_S -> GraalHPyDelItemSNodeGen.getUncached();
689696
case CTX_FROMPYOBJECT -> GraalHPyFromPyObjectNodeGen.getUncached();
690697
case CTX_NEW -> GraalHPyNewNodeGen.getUncached();
691698
case CTX_ASSTRUCT_OBJECT, CTX_ASSTRUCT_LEGACY, CTX_ASSTRUCT_TYPE, CTX_ASSTRUCT_LONG, CTX_ASSTRUCT_FLOAT, CTX_ASSTRUCT_UNICODE, CTX_ASSTRUCT_TUPLE, CTX_ASSTRUCT_LIST -> GraalHPyCastNodeGen.getUncached();
@@ -2219,6 +2226,32 @@ static int doGeneric(@SuppressWarnings("unused") Object hpyContext, Object recei
22192226
}
22202227
}
22212228

2229+
@HPyContextFunction("ctx_DelItem")
2230+
@HPyContextFunction("ctx_DelItem_i")
2231+
@GenerateUncached
2232+
public abstract static class GraalHPyDelItem extends HPyTernaryContextFunction {
2233+
2234+
@Specialization
2235+
static int doGeneric(@SuppressWarnings("unused") Object hpyContext, Object receiver, Object key,
2236+
@Cached PyObjectDelItem delItemNode) {
2237+
delItemNode.execute(null, receiver, key);
2238+
return 0;
2239+
}
2240+
}
2241+
2242+
@HPyContextFunction("ctx_DelItem_s")
2243+
@GenerateUncached
2244+
public abstract static class GraalHPyDelItemS extends HPyTernaryContextFunction {
2245+
2246+
@Specialization
2247+
static int doGeneric(@SuppressWarnings("unused") Object hpyContext, Object receiver, Object charPtr,
2248+
@Cached FromCharPointerNode fromCharPointerNode,
2249+
@Cached PyObjectDelItem delItemNode) {
2250+
delItemNode.execute(null, receiver, fromCharPointerNode.execute(charPtr));
2251+
return 0;
2252+
}
2253+
}
2254+
22222255
@HPyContextFunction("ctx_FromPyObject")
22232256
@GenerateUncached
22242257
public abstract static class GraalHPyFromPyObject extends HPyBinaryContextFunction {

0 commit comments

Comments
 (0)