[Vm-dev] About the image
andreas.raab at gmx.de
Wed Aug 18 15:33:47 UTC 2010
On 8/18/2010 2:21 AM, Bert Freudenberg wrote:
> On 18.08.2010, at 04:48, Andreas Raab wrote:
>> On 8/17/2010 6:54 PM, Eliot Miranda wrote:
>>> In the VW VM I added code to choose a class in the
>>> specialObjectsArray (Array) and search it for a byte object with the
>>> characters 'Array' and use that as the class name index. Similarly its
>>> class was searched for an object equal to Array and that slot was used
>>> as the thisClass index. I see I was too lazy to do that in
>>> StackInterpreter>>initializeInterpreter but I should, and should
>>> introduce classNameIndex and thisClassIndex and use them in place of the
>>> hard-coded constants. That way one can save immediately after
>>> adding/removing the behavior inst var and have the VM get things right
>>> on start-up.
>> That's one option. An alternative is to provide the class name index via the splObjsArray and default to 5 if not present.
> I like Elliot's option better. Not having to maintain that index means there is one thing less to worry about. If the added flexibility of an explicit index is needed later, it could still be added at that point.
I'm not entirely sure about that. You do have to maintain the
information that after adding an ivar you'll have to save and restart
the image or else strange things will happen. This effect is nowhere
documented. With the index you could automate the process (using the
ClassBuilder notification) so that if Class chnages shape it updates the
splObj entry automatically.
More information about the Vm-dev