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