@@ -434,10 +434,10 @@ static Object doSingleton(@SuppressWarnings("unused") CExtContext cextContext, @
434
434
return nativeWrapper ;
435
435
}
436
436
437
- @ Specialization (guards = "object == cachedObject" , limit = "3" )
437
+ @ Specialization (guards = "object == cachedObject" , limit = "3" , assumptions = "singleContextAssumption()" )
438
438
static Object doPythonClass (@ SuppressWarnings ("unused" ) CExtContext cextContext , @ SuppressWarnings ("unused" ) PythonManagedClass object ,
439
- @ SuppressWarnings ("unused" ) @ Cached ("object" ) PythonManagedClass cachedObject ,
440
- @ Cached ("wrapNativeClass(object)" ) PythonClassNativeWrapper wrapper ) {
439
+ @ SuppressWarnings ("unused" ) @ Cached (value = "object" , weak = true ) PythonManagedClass cachedObject ,
440
+ @ Cached (value = "wrapNativeClass(object)" , weak = true ) PythonClassNativeWrapper wrapper ) {
441
441
return wrapper ;
442
442
}
443
443
@@ -690,10 +690,10 @@ static Object doSingleton(@SuppressWarnings("unused") CExtContext cextContext, @
690
690
return nativeWrapper ;
691
691
}
692
692
693
- @ Specialization (guards = "object == cachedObject" , limit = "3" )
693
+ @ Specialization (guards = "object == cachedObject" , limit = "3" , assumptions = "singleContextAssumption()" )
694
694
static Object doPythonClass (@ SuppressWarnings ("unused" ) CExtContext cextContext , @ SuppressWarnings ("unused" ) PythonManagedClass object ,
695
- @ SuppressWarnings ("unused" ) @ Cached ("object" ) PythonManagedClass cachedObject ,
696
- @ Cached ("wrapNativeClass(object)" ) PythonClassNativeWrapper wrapper ) {
695
+ @ SuppressWarnings ("unused" ) @ Cached (value = "object" , weak = true ) PythonManagedClass cachedObject ,
696
+ @ Cached (value = "wrapNativeClass(object)" , weak = true ) PythonClassNativeWrapper wrapper ) {
697
697
wrapper .increaseRefCount ();
698
698
return wrapper ;
699
699
}
@@ -873,10 +873,10 @@ static Object doSingleton(CExtContext cextContext, PythonAbstractObject object,
873
873
return ToNewRefNode .doSingleton (cextContext , object , contextRef );
874
874
}
875
875
876
- @ Specialization (guards = "object == cachedObject" , limit = "3" )
876
+ @ Specialization (guards = "object == cachedObject" , limit = "3" , assumptions = "singleContextAssumption()" )
877
877
static Object doPythonClass (@ SuppressWarnings ("unused" ) CExtContext cextContext , @ SuppressWarnings ("unused" ) PythonManagedClass object ,
878
- @ SuppressWarnings ("unused" ) @ Cached ("object" ) PythonManagedClass cachedObject ,
879
- @ Cached ("wrapNativeClass(object)" ) PythonClassNativeWrapper wrapper ) {
878
+ @ SuppressWarnings ("unused" ) @ Cached (value = "object" , weak = true ) PythonManagedClass cachedObject ,
879
+ @ Cached (value = "wrapNativeClass(object)" , weak = true ) PythonClassNativeWrapper wrapper ) {
880
880
wrapper .increaseRefCount ();
881
881
return wrapper ;
882
882
}
0 commit comments