[Vm-dev] VM Maker: VMMaker.oscog-eem.1715.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Mar 8 23:13:51 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1715.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1715
Author: eem
Time: 8 March 2016, 3:10:49.368185 pm
UUID: 3e6d062f-668d-43fa-b068-402d2b862a2a
Ancestors: VMMaker.oscog-EstebanLorenzano.1714
Ensure purgeDuplicateClassTableEntriesFor: will not destroy class pun entries.
=============== Diff against VMMaker.oscog-EstebanLorenzano.1714 ===============
Item was changed:
----- Method: SpurMemoryManager>>purgeDuplicateClassTableEntriesFor: (in category 'class table') -----
purgeDuplicateClassTableEntriesFor: aClass
+ "Given that either marking or allInstances has ensured that
+ all instances of aClass have the class's hash as their class
+ index, ensure aClass is in the table only at its hash (or a pun)."
- "Given that either marking or allnstances has ensured that
- all instances of aClass have the class's hash as their class
- index, ensure aClass is in the table only at its hash."
| expectedIndex |
expectedIndex := self rawHashBitsOf: aClass.
self classTableEntriesDo:
[:entry :index|
+ (entry = aClass
+ and: [index ~= expectedIndex
+ and: [index > self lastClassIndexPun]]) ifTrue:
- (entry = aClass and: [index ~= expectedIndex]) ifTrue:
[self classAtIndex: index put: nilObj.
index < classTableIndex ifTrue:
[classTableIndex := index]]].
"classTableIndex must never index the first page, which is reserved for classes known to the VM."
self assert: classTableIndex >= (1 << self classTableMajorIndexShift)!
More information about the Vm-dev
mailing list