[Vm-dev] de-dup refactoring,
readImageFromFile:HeapSize:StartingAt:
Eliot Miranda
eliot.miranda at gmail.com
Wed Jun 15 15:24:14 UTC 2016
Hi Ben,
if you have energy for this go for it. I'm happy to integrate. For the moment let's stick to change sets.
_,,,^..^,,,_ (phone)
> On Jun 15, 2016, at 6:08 AM, Ben Coman <btc at openinworld.com> wrote:
>
>
> Just an observation while I was comparing StackIntepreter and CoIntepreter
> implementations of #readImageFromFile:HeapSize:StartingAt:
> here.... https://www.diffchecker.com/ojepiwfn
>
> These methods are long and have a lot of duplicated code.
> Would it be worthwhile to...
> in CoInterpreter>>readImageFromFile:HeapSize:StartingAt:
> rename variable /cogCodeSize/ to /extraHeapSize/
> and then copy the method to...
> StackInterpreter>>readImageFromFile: f HeapSize:
> desiredHeapSize ExtraHeapSize: extraHeapSize StartingAt:
> imageOffset
>
>
> Then the duplication might(?) be eliminated by...
>
> StackInterpreter>>readImageFromFile: f HeapSize: desiredHeapSize
> StartingAt: imageOffset
> ^self readImageFromFile: f
> HeapSize: desiredHeapSize
> ExtraHeapSize: 0
> StartingAt: imageOffset
>
>
> CoInterpreter>>readImageFromFile: f HeapSize: desiredHeapSize
> StartingAt: imageOffset
> | hdrCogCodeSize dataSize |
> hdrCogCodeSize := (self getShortFromFile: f swap: swapBytes) * 1024.
> cogCodeSize := desiredCogCodeSize ~= 0
> ifTrue: [desiredCogCodeSize]
> ifFalse:
> [hdrCogCodeSize = 0
> ifTrue: [cogit defaultCogCodeSize]
> ifFalse: [hdrCogCodeSize]].
> ^dataSize := self readImageFromFile: f
> HeapSize: desiredHeapSize
> ExtraHeapSize: cogCodeSize
> StartingAt: imageOffset.
> self initializeCodeGenerator.
> ^dataSize
>
> ??
> cheers -ben
More information about the Vm-dev
mailing list