[Vm-dev] VM Maker: VMMaker.oscog-eem.604.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Feb 4 18:27:59 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.604.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.604
Author: eem
Time: 4 February 2014, 10:24:54.015 am
UUID: 3dedfc9d-e8c2-47ea-bb78-5dde624ade77
Ancestors: VMMaker.oscog-eem.603
Rewrite allocateLargestFreeChunk to skirt Slang limitation.
=============== Diff against VMMaker.oscog-eem.603 ===============
Item was changed:
----- Method: SpurMemoryManager>>allocateLargestFreeChunk (in category 'free space') -----
allocateLargestFreeChunk
"Answer the largest free chunk in the free lists."
+ | freeChunk next |
+ "would like to use ifNotNil: but the ^next inside the ^blah ifNotNil: confused Slang"
+ freeChunk := self findLargestFreeChunk.
+ freeChunk ifNil: [^nil].
+ "This will be the node, not a list element. Answer a list element in preference."
+ next := self fetchPointer: self freeChunkNextIndex ofFreeChunk: freeChunk.
+ next ~= 0 ifTrue:
+ [self storePointer: self freeChunkNextIndex
+ ofFreeChunk: freeChunk
+ withValue: (self fetchPointer: self freeChunkNextIndex ofFreeChunk: next).
+ ^next].
+ self unlinkSolitaryFreeTreeNode: freeChunk.
+ ^freeChunk!
- ^self findLargestFreeChunk ifNotNil:
- [:freeChunk| | next |
- "This will be the node, not a list element. Answer a list element in preference."
- next := self fetchPointer: self freeChunkNextIndex ofFreeChunk: freeChunk.
- next ~= 0 ifTrue:
- [self storePointer: self freeChunkNextIndex
- ofFreeChunk: freeChunk
- withValue: (self fetchPointer: self freeChunkNextIndex ofFreeChunk: next).
- ^next].
- self unlinkSolitaryFreeTreeNode: freeChunk.
- freeChunk]!
More information about the Vm-dev
mailing list