Skip to content

Commit b1bc12b

Browse files
committed
Turn DecRefNode into XDecRefNode
1 parent 3a27da6 commit b1bc12b

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/ctypes/CtypesModuleBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1715,7 +1715,7 @@ protected abstract static class PyDECREFNode extends PythonUnaryBuiltinNode {
17151715
static Object doGeneric(Object arg) {
17161716
CApiContext.ensureCapiWasLoaded();
17171717
Object nativePointer = CApiTransitions.PythonToNativeNode.executeUncached(arg);
1718-
CExtNodes.DecRefPointerNode.executeUncached(nativePointer);
1718+
CExtNodes.XDecRefPointerNode.executeUncached(nativePointer);
17191719
return arg;
17201720
}
17211721
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CExtNodes.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,10 +1136,10 @@ static PRaiseNativeNode doIt(@Cached(inline = false) PRaiseNativeNode node) {
11361136
@GenerateInline
11371137
@GenerateCached(false)
11381138
@GenerateUncached
1139-
public abstract static class DecRefPointerNode extends PNodeWithContext {
1139+
public abstract static class XDecRefPointerNode extends PNodeWithContext {
11401140

11411141
public static void executeUncached(Object pointer) {
1142-
CExtNodesFactory.DecRefPointerNodeGen.getUncached().execute(null, pointer);
1142+
CExtNodesFactory.XDecRefPointerNodeGen.getUncached().execute(null, pointer);
11431143
}
11441144

11451145
public abstract void execute(Node inliningTarget, Object pointer);
@@ -1168,6 +1168,9 @@ static void doDecref(Node inliningTarget, Object pointerObj,
11681168
return;
11691169
}
11701170
}
1171+
if (pointer == 0) {
1172+
return;
1173+
}
11711174
PythonNativeWrapper wrapper = toPythonWrapperNode.executeWrapper(pointer, false);
11721175
if (wrapper instanceof PythonAbstractObjectNativeWrapper objectWrapper) {
11731176
isWrapperProfile.enter(inliningTarget);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2232,7 +2232,7 @@ static void doObjectCachedLen(NativeObjectSequenceStorage storage,
22322232
@Bind("this") Node inliningTarget,
22332233
@Cached("storage.length()") int cachedLen,
22342234
@Shared @Cached CStructAccess.ReadPointerNode readNode,
2235-
@Shared @Cached CExtNodes.DecRefPointerNode decRefPointerNode,
2235+
@Shared @Cached CExtNodes.XDecRefPointerNode decRefPointerNode,
22362236
@Shared @Cached CStructAccess.FreeNode freeNode) {
22372237
for (int i = 0; i < cachedLen; i++) {
22382238
Object elementPointer = readNode.readArrayElement(storage.getPtr(), i);
@@ -2246,7 +2246,7 @@ static void doObjectCachedLen(NativeObjectSequenceStorage storage,
22462246
static void doObjectGeneric(NativeObjectSequenceStorage storage,
22472247
@Bind("this") Node inliningTarget,
22482248
@Shared @Cached CStructAccess.ReadPointerNode readNode,
2249-
@Shared @Cached CExtNodes.DecRefPointerNode decRefPointerNode,
2249+
@Shared @Cached CExtNodes.XDecRefPointerNode decRefPointerNode,
22502250
@Shared @Cached CStructAccess.FreeNode freeNode) {
22512251
for (int i = 0; i < storage.length(); i++) {
22522252
Object elementPointer = readNode.readArrayElement(storage.getPtr(), i);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/common/SequenceStorageNodes.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ protected static void doNativeObject(NativeObjectSequenceStorage storage, int id
11091109
@Cached PythonToNativeNewRefNode toNative,
11101110
@Cached CStructAccess.ReadPointerNode readPointerNode,
11111111
@Cached CStructAccess.WritePointerNode writePointerNode,
1112-
@Cached CExtNodes.DecRefPointerNode decRefPointerNode) {
1112+
@Cached CExtNodes.XDecRefPointerNode decRefPointerNode) {
11131113
Object old = readPointerNode.readArrayElement(storage.getPtr(), idx);
11141114
writePointerNode.writeArrayElement(storage.getPtr(), idx, toNative.execute(value));
11151115
decRefPointerNode.execute(inliningTarget, old);
@@ -2986,16 +2986,13 @@ public abstract static class SetNativeLenNode extends Node {
29862986
@InliningCutoff
29872987
static void doShrink(NativeObjectSequenceStorage s, int len,
29882988
@Bind("this") Node inliningTarget,
2989-
@CachedLibrary(limit = "1") InteropLibrary lib,
29902989
@Cached CStructAccess.ReadPointerNode readNode,
2991-
@Cached CExtNodes.DecRefPointerNode decRefPointerNode) {
2990+
@Cached CExtNodes.XDecRefPointerNode decRefPointerNode) {
29922991
if (len < s.length()) {
29932992
// When shrinking, we need to decref the items that are now past the end
29942993
for (int i = len; i < s.length(); i++) {
29952994
Object elementPointer = readNode.readArrayElement(s.getPtr(), i);
2996-
if (!lib.isNull(elementPointer)) {
2997-
decRefPointerNode.execute(inliningTarget, elementPointer);
2998-
}
2995+
decRefPointerNode.execute(inliningTarget, elementPointer);
29992996
}
30002997
}
30012998
s.setNewLength(len);

0 commit comments

Comments
 (0)