看refbase源码:
RefBase类定义中的函数:
incStrong()增加一个弱引用,一个强引用
decStrong 对应的,减少一个弱引用,一个强引用
forceIncStrong 增加一个弱引用,一个强引用
getStrongCount获取强引用个数
weakref_impl* const mRefs; 这里有个成员变量。
以上大部分都是强引用的
接下来定义了一个内部类weakref_type这个大部分都是针对弱引用的
incWeak 增加弱引用计数
decWeak 减少弱引用计数
attemptIncStrong 由弱引用转成强引用
attemptIncWeak 获取一个弱引用
promote是wp的一个函数,里面调用了attemptIncStrong ,返回了一个对象的强引用