[Vm-dev] VM Maker: VMMaker.oscog-eem.770.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jun 12 22:19:01 UTC 2014


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.770.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.770
Author: eem
Time: 12 June 2014, 3:16:11.324 pm
UUID: 19543428-8aa0-4ff8-97ab-b4fa1a6724fb
Ancestors: VMMaker.oscog-eem.769

Spur: Fix bugs in isValidFreeObject: & printFreeTreeChunk:

=============== Diff against VMMaker.oscog-eem.769 ===============

Item was added:
+ ----- Method: SpurMemoryManager>>addressCouldBeOldObj: (in category 'debug support') -----
+ addressCouldBeOldObj: address
+ 	^(address bitAnd: self baseHeaderSize - 1) = 0
+ 	  and: [self isInOldSpace: address]!

Item was changed:
  ----- Method: SpurMemoryManager>>isValidFreeObject: (in category 'free space') -----
  isValidFreeObject: objOop
  	| chunk |
+ 	^(self addressCouldBeOldObj: objOop)
- 	^(self addressCouldBeObj: objOop)
  	  and: [(self isFreeObject: objOop)
+ 	  and: [(self oop: (self addressAfter: objOop) isLessThanOrEqualTo: endOfMemory)
- 	  and: [(self isInMemory: (self addressAfter: objOop))
  	  and: [((chunk := (self fetchPointer: self freeChunkNextIndex ofFreeChunk: objOop)) = 0
  		   or: [self isFreeObject: chunk])
  	  and: [(self bytesInObject: objOop) < (self numFreeLists * self allocationUnit)
  		    or: [((chunk := (self fetchPointer: self freeChunkParentIndex ofFreeChunk: objOop)) = 0
  			   or: [self isFreeObject: chunk])
  			  and: [((chunk := (self fetchPointer: self freeChunkSmallerIndex ofFreeChunk: objOop)) = 0
  				    or: [self isFreeObject: chunk])
  			  and: [(chunk := (self fetchPointer: self freeChunkLargerIndex ofFreeChunk: objOop)) = 0
  				    or: [self isFreeObject: chunk]]]]]]]]!

Item was changed:
  ----- Method: SpurMemoryManager>>printFreeTreeChunk: (in category 'debug printing') -----
  printFreeTreeChunk: chunkOrZero
  	<inline: false> "Slang is blind-sided by the inlining of printFreeTreeChunk: into printFreeTree."
  	chunkOrZero > 0 ifTrue:
+ 		[self printFreeTreeChunk: (self fetchPointer: self freeChunkSmallerIndex ofFreeChunk: chunkOrZero).
- 		[self printFreeTreeChunk: (self fetchPointer: self freeChunkSmallerIndex ofObject: chunkOrZero).
  		 self printFreeChunk: chunkOrZero.
+ 		 self printFreeTreeChunk: (self fetchPointer: self freeChunkLargerIndex ofFreeChunk: chunkOrZero)]!
- 		 self printFreeTreeChunk: (self fetchPointer: self freeChunkLargerIndex ofObject: chunkOrZero)]!



More information about the Vm-dev mailing list