On Thu, 13 Mar 2008, Nicholas Clark via RT wrote:

> Specifically, I am suspecting that if
> 
>     offsetof(struct parrot_string_t, bufused) == sizeof(Buffer)
> 
> matters, then something is either looking at or copying (sub)structures than
> happen to have padding, and in turn that padding happens to end up with bit
> patterns that have meaning in some other, larger (containing?) structure.

Yes.  That's exactly my suspicion.  Strings are stored in "bufferlike"
pools, and many of the mainpulations in src/headers.c involve
sizeof(Buffer), even though there is no actual "Buffer" inside a string
anymore.  To be fair, though, there's a *lot* more going on in parrot's
memory management that I just don't understand, and I have been unable
to pinpoint a specific assignment that is in error.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to