[squeak-dev] Re: becomeForward: alternative
Rob Withers
reefedjib at yahoo.com
Thu Sep 18 16:09:06 UTC 2008
----- Original Message -----
From: "Paolo Bonzini" <bonzini at gnu.org>
To: "The general-purpose Squeak developers list"
<squeak-dev at lists.squeakfoundation.org>
Sent: Tuesday, September 16, 2008 3:59 PM
Subject: [squeak-dev] Re: becomeForward: alternative
> Rob Withers wrote:
>> I am trying to becomeForward with an object and a small integer. This
>> of course doesn't work. Is there an alternative that would allow me to
>> do this?
>
> There's actually no reason why the *destination* of a becomeForward:
> cannot be a SmallInteger. It's a VM bug in my opinion.
>
Thanks, Paolo.
I tried looking into this a bit and here is what I have found. First off,
this will only work with
#elementsForwardIdentityTo: anArrayWithSmallIntegers copyHash: false.
It would not work to copy the source hash to a SmallInteger.
Next is understanding forwarding blocks and the process of remapping objects
using them. There are three steps:
1) #prepareForwardingTableForBecoming:with:twoWay: "create and init
forwarding blocks, and install into original headers"
2) #mapPointersInObjectsFrom:to: "point pointers to forwarded oop"
3) #restoreHeadersAfterForwardBecome: "restore original headers"
The question seems to come down to the following. Can forwarding blocks
point to SmallIntegers?
Rob
> Paolo
>
More information about the Squeak-dev
mailing list
|