缓存查找(快速查找)流程
2021-07-05 23:42:31 0 举报
iOS objc_msgSend缓存查找(快速查找)流程
作者其他创作
大纲/内容
是
循环调用
否
objc-818.2_objc_msgSend缓存查找(快速查找)流程
退出查询,跳转__objc_msgSend_uncached
tagged pointer isa处理
是否支持tagged pointer
CacheHit \\NORMAL缓存命中
空
LGetIsaDone
bucket中的sel与_cmd是否相等
判断查询的bucket地址是否大于buckets地址
bucket中的sel是否为空
sel != 0并且查询的bucket地址大于第一次查询的bucket地址
LNilOrTagged小对象是否为空
CacheLookup开始缓存查找流程
LReturnZero
ExtractISAp16 = isa & ISA_MASK
不存在
1.获取当前bucket的imp和sel2.将bucket的地址向前平移*bucket--
0 条评论
下一页