C.ref2 -> A,那么 shade(*slot)也就是shade(A),应该是把A着色为灰色,为什么图中是把A置为白色、C置为灰色了?
func YuasaWritePointer(slot *unsafe.Pointer, ptr unsafe.Pointer) {
shade(*slot)
*slot = ptr
}
- 原文段落:8.2写屏障技术,图3:使用Yuasa写屏障赋值器
ps:还是同一个图,这个地方地方的文字和图不匹配,应该是YuasaWritePointer(C.ref3, B)吧