Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.163.mcz
==================== Summary ====================
Name: Cog-eem.163 Author: eem Time: 28 June 2014, 5:17:11.575 pm UUID: 45688939-4dbe-4f42-883b-916a2d3b7e0b Ancestors: Cog-tpr.162
Make byteSizeOfInstanceOfSize: cope with overflow in the primitive. Make both byteSizeOfInstance[OfSize:] answer a primitive error code.
=============== Diff against Cog-tpr.162 ===============
Item was changed: ----- Method: SpurBootstrap class>>BehaviorPROTOTYPEbyteSizeOfInstance (in category 'method prototypes') ----- BehaviorPROTOTYPEbyteSizeOfInstance "Answer the total memory size of an instance of the receiver."
+ <primitive: 181 error: ec> - <primitive: 181> self isVariable ifTrue: [^self byteSizeOfInstanceOfSize: 0]. self primitiveFailed!
Item was changed: ----- Method: SpurBootstrap class>>BehaviorPROTOTYPEbyteSizeOfInstanceOfSize: (in category 'method prototypes') ----- BehaviorPROTOTYPEbyteSizeOfInstanceOfSize: basicSize "Answer the total memory size of an instance of the receiver with the given number of indexable instance variables."
+ <primitive: 181 error: ec> + self isVariable + ifTrue: "If the primitive overflowed answer a close approximation" + [(basicSize isInteger + and: [basicSize >= 16r1000000]) ifTrue: + [^2 * (self byteSizeOfInstanceOfSize: basicSize + 1 // 2) + - (self byteSizeOfInstanceOfSize: 0)]] + ifFalse: + [basicSize = 0 ifTrue: + [^self byteSizeOfInstance]]. - <primitive: 181> - self isVariable ifFalse: - [basicSize = 0 ifTrue: - [^self byteSizeOfInstance]]. self primitiveFailed!
vm-dev@lists.squeakfoundation.org