[Vm-dev] de-dup refactoring, readImageFromFile:HeapSize:StartingAt:
Ben Coman
btc at openinworld.com
Wed Jun 15 13:08:44 UTC 2016
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