block_byref 的数据访问。总是通过 block_byref->forward->val 来取得。
copy 之前,栈上 block_byref 的 __forwarding 指向自身,而栈上的 block 使用 block_byref->__forwarding->val 就可以修改栈上的数据。copy 之后,栈上的 block_byref 被复制到堆上,而栈上的 block_byref 的 __forwarding 被修改成指向堆上的数据,而堆上 block_byref 的 __forwarding 指向自身。
问题: “栈上的 block_byref 的 __forwarding 被修改成指向堆上的数据” 这一步 是怎么做到的,怎么就 copy 一下就指向堆了。脑子转不开了
copy 之前,栈上 block_byref 的 __forwarding 指向自身,而栈上的 block 使用 block_byref->__forwarding->val 就可以修改栈上的数据。copy 之后,栈上的 block_byref 被复制到堆上,而栈上的 block_byref 的 __forwarding 被修改成指向堆上的数据,而堆上 block_byref 的 __forwarding 指向自身。
问题: “栈上的 block_byref 的 __forwarding 被修改成指向堆上的数据” 这一步 是怎么做到的,怎么就 copy 一下就指向堆了。脑子转不开了