<div dir="ltr">Hi all,<div><br></div><div>I notice the methods `ZAddress::finalizable_good` and `ZAddress::mark_good` </div><div>have the following code, which are very strange and confuse me. </div><div><br></div><div>```</div><div>  const uintptr_t non_mark_bits_mask = ZPointerMarkMetadataMask ^ ZPointerAllMetadataMask;<br>  const uintptr_t non_mark_prev_bits = untype(prev) & non_mark_bits_mask;<br></div><div>  return color(addr, <other contents> | non_mark_prev_bits | ZPointerRememberedMask);<br></div><div>```</div><div><br></div><div><div></div><div>The expression `ZPointerMarkMetadataMask ^ ZPointerAllMetadataMask` </div><div>would have the result `48`, which is equal to `ZPointerRememberedMask`. </div><div>Then the expression `non_mark_prev_bits | ZPointerRememberedMask` </div><div>in the last statement will always be `48` as well. </div><div><br></div><div>So I think the first two statements which compute the `non_mark_prev_bits` <br>can be removed or simplified. What do you think about it? Any ideas are appreciated.</div></div><div><br></div><div>Best Regards,</div><div>-- Guoxiong</div></div>