@@ -993,32 +993,10 @@ public static Object run(Object object,
993993
994994 @ GenerateUncached
995995 public abstract static class GetNativeClassNode extends PNodeWithContext {
996- public abstract Object execute (PythonAbstractNativeObject object );
997-
998- @ Specialization (guards = {"isSingleContext()" , "object == cachedObject" }, limit = "1" )
999- @ SuppressWarnings ("unused" )
1000- static Object getNativeClassCachedIdentity (PythonAbstractNativeObject object ,
1001- @ Cached (value = "object" , weak = true ) PythonAbstractNativeObject cachedObject ,
1002- @ Cached ("getNativeClassUncached(object)" ) Object cachedClass ) {
1003- // TODO: (tfel) is this really something we can do? It's so rare for this class to
1004- // change that it shouldn't be worth the effort, but in native code, anything can
1005- // happen. OTOH, CPython also has caches that can become invalid when someone just
1006- // goes and changes the ob_type of an object.
1007- return cachedClass ;
1008- }
1009996
1010- @ Specialization (guards = {"isSingleContext()" , "isSame(lib, cachedObject, object)" })
1011- @ SuppressWarnings ("unused" )
1012- static Object getNativeClassCached (PythonAbstractNativeObject object ,
1013- @ Cached (value = "object" , weak = true ) PythonAbstractNativeObject cachedObject ,
1014- @ Cached ("getNativeClassUncached(object)" ) Object cachedClass ,
1015- @ CachedLibrary (limit = "3" ) @ SuppressWarnings ("unused" ) InteropLibrary lib ) {
1016- // TODO same as for 'getNativeClassCachedIdentity'
1017- return cachedClass ;
1018- }
997+ public abstract Object execute (PythonAbstractNativeObject object );
1019998
1020999 @ Specialization (guards = {"lib.hasMembers(object.getPtr())" }, //
1021- replaces = {"getNativeClassCached" , "getNativeClassCachedIdentity" }, //
10221000 limit = "1" , //
10231001 rewriteOn = {UnknownIdentifierException .class , UnsupportedMessageException .class })
10241002 static Object getNativeClassByMember (PythonAbstractNativeObject object ,
@@ -1030,7 +1008,7 @@ static Object getNativeClassByMember(PythonAbstractNativeObject object,
10301008 }
10311009
10321010 @ Specialization (guards = {"!lib.hasMembers(object.getPtr())" }, //
1033- replaces = {"getNativeClassCached" , "getNativeClassCachedIdentity" , " getNativeClassByMember" }, //
1011+ replaces = {"getNativeClassByMember" }, //
10341012 limit = "1" , //
10351013 rewriteOn = {UnknownIdentifierException .class , UnsupportedMessageException .class })
10361014 static Object getNativeClassByMemberAttachType (PythonAbstractNativeObject object ,
@@ -1043,24 +1021,14 @@ static Object getNativeClassByMemberAttachType(PythonAbstractNativeObject object
10431021 return classProfile .profile (toJavaNode .execute (lib .readMember (typedPtr , NativeMember .OB_TYPE .getMemberNameJavaString ())));
10441022 }
10451023
1046- @ Specialization (replaces = {"getNativeClassCached" , "getNativeClassCachedIdentity" , " getNativeClassByMember" , "getNativeClassByMemberAttachType" })
1024+ @ Specialization (replaces = {"getNativeClassByMember" , "getNativeClassByMemberAttachType" })
10471025 static Object getNativeClass (PythonAbstractNativeObject object ,
10481026 @ Cached PCallCapiFunction callGetObTypeNode ,
10491027 @ Cached AsPythonObjectNode toJavaNode ,
10501028 @ Cached ProfileClassNode classProfile ) {
10511029 // do not convert wrap 'object.object' since that is really the native pointer object
10521030 return classProfile .profile (toJavaNode .execute (callGetObTypeNode .call (FUN_GET_OB_TYPE , object .getPtr ())));
10531031 }
1054-
1055- static boolean isSame (InteropLibrary lib , PythonAbstractNativeObject cachedObject , PythonAbstractNativeObject object ) {
1056- return lib .isIdentical (cachedObject , object , lib );
1057- }
1058-
1059- public static Object getNativeClassUncached (PythonAbstractNativeObject object ) {
1060- // do not wrap 'object.object' since that is really the native pointer object
1061- return getNativeClass (object , PCallCapiFunction .getUncached (), AsPythonObjectNodeGen .getUncached (), ProfileClassNode .getUncached ());
1062- }
1063-
10641032 }
10651033
10661034 // -----------------------------------------------------------------------------------------------------------------
0 commit comments