[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