@@ -652,10 +652,9 @@ protected boolean needsTransfer() {
652
652
}
653
653
654
654
@ Specialization
655
- static Object doNative (PythonAbstractNativeObject obj ,
655
+ Object doNative (PythonAbstractNativeObject obj ,
656
656
@ Cached PCallCapiFunction callAddRef ) {
657
- boolean transfer = false ;
658
- if (transfer ) {
657
+ if (needsTransfer ()) {
659
658
callAddRef .call (NativeCAPISymbol .FUN_ADDREF , obj .object , 1 );
660
659
}
661
660
return obj .getPtr ();
@@ -892,19 +891,21 @@ private static long addNativeRefCount(long pointer, long refCntDelta) {
892
891
assert (refCount & 0xFFFFFFFF00000000L ) == 0 : String .format ("suspicious refcnt value during managed adjustment for %016x (%d %016x + %d)\n " , pointer , refCount , refCount , refCntDelta );
893
892
assert (refCount + refCntDelta ) > 0 : String .format ("refcnt reached zero during managed adjustment for %016x (%d %016x + %d)\n " , pointer , refCount , refCount , refCntDelta );
894
893
895
- refCount += refCntDelta ;
896
- UNSAFE .putLong (pointer + TP_REFCNT_OFFSET , refCount );
897
- return refCount ;
894
+ LOGGER .finest (() -> PythonUtils .formatJString ("addNativeRefCount %x %x %d + %d" , pointer , refCount , refCount , refCntDelta ));
895
+
896
+ UNSAFE .putLong (pointer + TP_REFCNT_OFFSET , refCount + refCntDelta );
897
+ return refCount + refCntDelta ;
898
898
}
899
899
900
900
private static long subNativeRefCount (long pointer , long refCntDelta ) {
901
901
long refCount = UNSAFE .getLong (pointer + TP_REFCNT_OFFSET );
902
902
assert (refCount & 0xFFFFFFFF00000000L ) == 0 : String .format ("suspicious refcnt value during managed adjustment for %016x (%d %016x + %d)\n " , pointer , refCount , refCount , refCntDelta );
903
903
assert (refCount - refCntDelta ) >= 0 : String .format ("refcnt below zero during managed adjustment for %016x (%d %016x + %d)\n " , pointer , refCount , refCount , refCntDelta );
904
904
905
- refCount -= refCntDelta ;
906
- UNSAFE .putLong (pointer + TP_REFCNT_OFFSET , refCount );
907
- return refCount ;
905
+ LOGGER .finest (() -> PythonUtils .formatJString ("subNativeRefCount %x %x %d + %d" , pointer , refCount , refCount , refCntDelta ));
906
+
907
+ UNSAFE .putLong (pointer + TP_REFCNT_OFFSET , refCount - refCntDelta );
908
+ return refCount - refCntDelta ;
908
909
}
909
910
910
911
private static Object createAbstractNativeObject (Object obj , boolean transfer , long pointer ) {
0 commit comments