首先,通过hash函数获得对象指针对应的SideTable的下标,从SideTables中取得SideTable。
然后,通过hash函数获得对象指针对应的引用计数所在下标,从SideTable中的引用计数表里获取对应的引用计数。
最后进行加一操作
引用计数最后两位分别表示:对象是否正在销毁;对象是否有弱引用。(因此取引用计数值最后需要右移两位)
首先,通过hash函数获得对象指针对应的SideTable的下标,从SideTables中取得SideTable。
然后,通过hash函数获得对象指针对应的引用计数所在下标,从SideTable中的引用计数表里获取对应的引用计数。
最后进行减一操作
2019-02-13首先,通过hash函数获得对象指针对应的SideTable的下标,从SideTables中取得SideTable。
定义一个局部变量,指定为1。
hash查找得到对象指针对应的引用计数。
最后将查找结果向右便宜,再加上上面的局部变量1,返回。
(这里解释了为什么alloc出来的对象引用计数为1,因为刚alloc出来,表里是没有这个对象的引用计数的,那么就是0,加上1,结果就是1)
网友评论