Hi,
On Wed, 11 Jun 2008, Pieter de Bie wrote:
I actually had this new patch ready, but I was hoping Dscho would answer
this first:
On 7 jun 2008, at 18:37, Junio C Hamano wrote:
quoted
Oh, I was not complaining about the one-fourthness. I was wondering why
"(uint32_t *)", which makes it look like the type itself has very deep
meaning for this computation, was used, instead of "(char *)" or something
that makes it much clearer that what could be pointed at by the pointer
does not matter and you are only using them as fake integers. If there is
such a deep meaning, it needs documented, and if there isn't then probably
the use of (uint32_t *) should also be fixed.
since I don't know the answer to that :)
I think that your patch does not need to address that, as the logic is (or
should be) confined to the functions markt_object() and get_object_mark()
(except that you have to split off mark_to_ptr() from
mark_object(), as you did).
Unfortunately, I did not yet have time to look up the discussion on the
mailing list that led me to implement this funny pointer arithmetic.
Ciao,
Dscho