[Vm-dev] VM Maker: VMMaker.oscog-eem.767.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jun 10 22:45:26 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.767.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.767
Author: eem
Time: 10 June 2014, 3:42:37.171 pm
UUID: b11544fd-09a4-4469-8ce4-3f2339f08d05
Ancestors: VMMaker.oscog-eem.766
Spur: fix some compilation warnings in the cointerp.
=============== Diff against VMMaker.oscog-eem.766 ===============
Item was changed:
----- Method: SpurSegmentManager>>findEmptySegNearestInSizeTo: (in category 'growing/shrinking memory') -----
findEmptySegNearestInSizeTo: size
| seg best delta |
<var: #seg type: #'SpurSegmentInfo *'>
+ <var: #best type: #'SpurSegmentInfo *'>
best := nil.
delta := size.
0 to: numSegments - 1 do:
[:i|
seg := self addressOf: (segments at: i).
(self isEmptySegment: seg) ifTrue:
[best
ifNil: [best := seg]
ifNotNil:
[(size >= (seg segSize * 0.75)
and: [(seg segSize - size) abs < delta]) ifTrue:
[best := seg. delta := (seg segSize - size) abs]]]].
^best!
Item was changed:
----- Method: SpurSegmentManager>>removeSegment: (in category 'growing/shrinking memory') -----
removeSegment: emptySeg
<var: #emptySeg type: #'SpurSegmentInfo *'>
| i |
i := self indexOfSegment: emptySeg.
self assert: i > 0.
+ manager sqDeallocateMemorySegmentAt: emptySeg segStart asVoidPointer OfSize: emptySeg segSize.
- manager sqDeallocateMemorySegmentAt: emptySeg segStart OfSize: emptySeg segSize.
i to: numSegments - 1 do:
[:j| segments at: j put: (segments at: j + 1)].
self cCode: [] inSmalltalk: [segments at: numSegments - 1 put: SpurSegmentInfo new].
numSegments := numSegments - 1.
self bridgeFrom: (self addressOf: (segments at: i - 1))
to: (i <= (numSegments - 1) ifTrue: [self addressOf: (segments at: i)]).
manager setLastSegment: (self addressOf: (segments at: numSegments - 1))!
More information about the Vm-dev
mailing list