[prev in list] [next in list] [prev in thread] [next in thread]
List: squeak-vm-dev
Subject: [Vm-dev] VM Maker: Cog-eem.163.mcz
From: commits () source ! squeak ! org
Date: 2014-06-29 0:17:16
[Download RAW message or body]
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!
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic