On Thursday 29 Jul 2010 1:57:03 pm Mariano Martinez Peck wrote:
On Tue, Jul 27, 2010 at 6:10 PM, K. K. Subramaniam > > A oop is an offset.
Since every oop is aligned to a 4-word boundary
ok.....each oop is 4-word -> 32 bits, 4 bytes. I am right? One is used to mark SmalltalkIntegers. But here, that doesn't matter.
Yes, 4-word should actually read 4-byte word. Mea culpa :-(.
the least significant two bits are always zero.
why? I don't understand this. Why the last two bits are always zero? because ImageSegment assumes that the size of the segment will be much smaller?
No. Because an oop is a 4-byte aligned pointer. Its last two bits will always be zero. The choice and position of bits in an oop and special bits in an object header gives us a quick way to compute byte offsets into object memory.
HTH .. Subbu