[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