[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