Skip to content

Commit 6b26d7d

Browse files
committed
Make release buffer node into a static method
1 parent 55fecb6 commit 6b26d7d

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/memoryview/MemoryViewBuiltins.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import com.oracle.graal.python.builtins.objects.bytes.BytesBuiltins.ExpectIntNode;
7171
import com.oracle.graal.python.builtins.objects.bytes.BytesBuiltins.SepExpectByteNode;
7272
import com.oracle.graal.python.builtins.objects.bytes.BytesNodes;
73+
import com.oracle.graal.python.builtins.objects.bytes.PByteArray;
7374
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
7475
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes;
7576
import com.oracle.graal.python.builtins.objects.cext.capi.NativeCAPISymbols;
@@ -175,7 +176,7 @@ public void postInitialize(PythonCore core) {
175176
// It's a weakref, it may go away and in that case we don't have to do
176177
// anything
177178
if (owner != null) {
178-
MemoryViewNodes.ReleaseBufferOfManagedObjectNode.getUncached().execute(owner);
179+
releaseBufferOfManagedObject(owner, ConditionProfile.getUncached());
179180
}
180181
return null;
181182
}
@@ -762,10 +763,10 @@ Object releaseSimple(PMemoryView self) {
762763

763764
@Specialization(guards = {"self.getReference() != null", "!self.getManagedBuffer().isForNative()"})
764765
Object releaseManaged(PMemoryView self,
765-
@Cached MemoryViewNodes.ReleaseBufferOfManagedObjectNode release) {
766+
@Cached ConditionProfile isByteArrayProfile) {
766767
checkExports(self);
767768
if (checkShouldReleaseBuffer(self)) {
768-
release.execute(self.getOwner());
769+
releaseBufferOfManagedObject(self.getOwner(), isByteArrayProfile);
769770
}
770771
self.setReleased();
771772
return PNone.NONE;
@@ -807,6 +808,7 @@ private void checkExports(PMemoryView self) {
807808
@Builtin(name = "itemsize", minNumOfPositionalArgs = 1, isGetter = true)
808809
@GenerateNodeFactory
809810
public abstract static class ItemSizeNode extends PythonUnaryBuiltinNode {
811+
810812
@Specialization
811813
int get(PMemoryView self) {
812814
self.checkReleased(this);
@@ -817,6 +819,7 @@ int get(PMemoryView self) {
817819
@Builtin(name = "nbytes", minNumOfPositionalArgs = 1, isGetter = true)
818820
@GenerateNodeFactory
819821
public abstract static class NBytesNode extends PythonUnaryBuiltinNode {
822+
820823
@Specialization
821824
int get(PMemoryView self) {
822825
self.checkReleased(this);
@@ -827,6 +830,7 @@ int get(PMemoryView self) {
827830
@Builtin(name = "obj", minNumOfPositionalArgs = 1, isGetter = true)
828831
@GenerateNodeFactory
829832
public abstract static class ObjNode extends PythonUnaryBuiltinNode {
833+
830834
@Specialization
831835
Object get(PMemoryView self) {
832836
self.checkReleased(this);
@@ -837,6 +841,7 @@ Object get(PMemoryView self) {
837841
@Builtin(name = "format", minNumOfPositionalArgs = 1, isGetter = true)
838842
@GenerateNodeFactory
839843
public abstract static class FormatNode extends PythonUnaryBuiltinNode {
844+
840845
@Specialization
841846
Object get(PMemoryView self) {
842847
self.checkReleased(this);
@@ -847,6 +852,7 @@ Object get(PMemoryView self) {
847852
@Builtin(name = "shape", minNumOfPositionalArgs = 1, isGetter = true)
848853
@GenerateNodeFactory
849854
public abstract static class ShapeNode extends PythonUnaryBuiltinNode {
855+
850856
@Specialization
851857
Object get(PMemoryView self,
852858
@Cached ConditionProfile nullProfile) {
@@ -861,6 +867,7 @@ Object get(PMemoryView self,
861867
@Builtin(name = "strides", minNumOfPositionalArgs = 1, isGetter = true)
862868
@GenerateNodeFactory
863869
public abstract static class StridesNode extends PythonUnaryBuiltinNode {
870+
864871
@Specialization
865872
Object get(PMemoryView self,
866873
@Cached ConditionProfile nullProfile) {
@@ -875,6 +882,7 @@ Object get(PMemoryView self,
875882
@Builtin(name = "suboffsets", minNumOfPositionalArgs = 1, isGetter = true)
876883
@GenerateNodeFactory
877884
public abstract static class SuboffsetsNode extends PythonUnaryBuiltinNode {
885+
878886
@Specialization
879887
Object get(PMemoryView self,
880888
@Cached ConditionProfile nullProfile) {
@@ -889,6 +897,7 @@ Object get(PMemoryView self,
889897
@Builtin(name = "readonly", minNumOfPositionalArgs = 1, isGetter = true)
890898
@GenerateNodeFactory
891899
public abstract static class ReadonlyNode extends PythonUnaryBuiltinNode {
900+
892901
@Specialization
893902
boolean get(PMemoryView self) {
894903
self.checkReleased(this);
@@ -899,6 +908,7 @@ boolean get(PMemoryView self) {
899908
@Builtin(name = "ndim", minNumOfPositionalArgs = 1, isGetter = true)
900909
@GenerateNodeFactory
901910
public abstract static class NDimNode extends PythonUnaryBuiltinNode {
911+
902912
@Specialization
903913
int get(PMemoryView self) {
904914
self.checkReleased(this);
@@ -909,6 +919,7 @@ int get(PMemoryView self) {
909919
@Builtin(name = "c_contiguous", minNumOfPositionalArgs = 1, isGetter = true)
910920
@GenerateNodeFactory
911921
public abstract static class CContiguousNode extends PythonUnaryBuiltinNode {
922+
912923
@Specialization
913924
boolean get(PMemoryView self) {
914925
self.checkReleased(this);
@@ -919,6 +930,7 @@ boolean get(PMemoryView self) {
919930
@Builtin(name = "f_contiguous", minNumOfPositionalArgs = 1, isGetter = true)
920931
@GenerateNodeFactory
921932
public abstract static class FContiguousNode extends PythonUnaryBuiltinNode {
933+
922934
@Specialization
923935
boolean get(PMemoryView self) {
924936
self.checkReleased(this);
@@ -929,10 +941,17 @@ boolean get(PMemoryView self) {
929941
@Builtin(name = "contiguous", minNumOfPositionalArgs = 1, isGetter = true)
930942
@GenerateNodeFactory
931943
public abstract static class ContiguousNode extends PythonUnaryBuiltinNode {
944+
932945
@Specialization
933946
boolean get(PMemoryView self) {
934947
self.checkReleased(this);
935948
return self.isCContiguous() || self.isFortranContiguous();
936949
}
937950
}
951+
952+
private static void releaseBufferOfManagedObject(Object object, ConditionProfile isByteArrayProfile) {
953+
if (isByteArrayProfile.profile(object instanceof PByteArray)) {
954+
// TODO GR-26945
955+
}
956+
}
938957
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/memoryview/MemoryViewNodes.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252

5353
import com.oracle.graal.python.PythonLanguage;
5454
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
55-
import com.oracle.graal.python.builtins.objects.bytes.PByteArray;
5655
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
5756
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes;
5857
import com.oracle.graal.python.builtins.objects.cext.capi.NativeCAPISymbols;
@@ -966,24 +965,6 @@ public static ToJavaBytesFortranOrderNode create() {
966965
}
967966
}
968967

969-
@GenerateUncached
970-
public abstract static class ReleaseBufferOfManagedObjectNode extends Node {
971-
public abstract void execute(Object object);
972-
973-
@Specialization
974-
static void bytearray(@SuppressWarnings("unused") PByteArray object) {
975-
// TODO
976-
}
977-
978-
public static ReleaseBufferOfManagedObjectNode create() {
979-
return MemoryViewNodesFactory.ReleaseBufferOfManagedObjectNodeGen.create();
980-
}
981-
982-
public static ReleaseBufferOfManagedObjectNode getUncached() {
983-
return MemoryViewNodesFactory.ReleaseBufferOfManagedObjectNodeGen.getUncached();
984-
}
985-
}
986-
987968
public abstract static class GetBufferReferences extends Node {
988969
public abstract BufferReferences execute();
989970

0 commit comments

Comments
 (0)