Andreas Raab uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ar.320.mcz==================== Summary ====================
Name: Kernel-ar.320
Author: ar
Time: 4 December 2009, 2:14:06 am
UUID: 3be1d86a-629f-ef4a-ab4c-7b7643c2aab0
Ancestors: Kernel-ul.319
Signal OutOfMemory instead of calling signalLowSpace.
=============== Diff against Kernel-ul.319 ===============
Item was changed:
----- Method: Behavior>>basicNew (in category 'instance creation') -----
basicNew
"Primitive. Answer an instance of the receiver (which is a class) with no
indexable variables. Fail if the class is indexable. Essential. See Object
documentation whatIsAPrimitive."
<primitive: 70>
self isVariable ifTrue: [ ^ self basicNew: 0 ].
"space must be low"
+ OutOfMemory signal.
- self environment signalLowSpace.
^ self basicNew "retry if user proceeds"
!
Item was changed:
----- Method: Behavior>>basicNew: (in category 'instance creation') -----
basicNew: sizeRequested
"Primitive. Answer an instance of this class with the number
of indexable variables specified by the argument, sizeRequested.
Fail if this class is not indexable or if the argument is not a
positive Integer, or if there is not enough memory available.
Essential. See Object documentation whatIsAPrimitive."
<primitive: 71>
self isVariable ifFalse:
[self error: self printString, ' cannot have variable sized instances'].
(sizeRequested isInteger and: [sizeRequested >= 0]) ifTrue:
["arg okay; space must be low."
+ OutOfMemory signal.
- self environment signalLowSpace.
^ self basicNew: sizeRequested "retry if user proceeds"].
self primitiveFailed!
Item was changed:
----- Method: CompiledMethod class>>newMethod:header: (in category 'instance creation') -----
newMethod: numberOfBytes header: headerWord
"Primitive. Answer an instance of me. The number of literals (and other
information) is specified the headerWord. The first argument specifies
the number of fields for bytecodes in the method. Fail if either
argument is not a SmallInteger, or if numberOfBytes is negative. Once
the header of a method is set by this primitive, it cannot be changed in
any way. Essential. See Object documentation whatIsAPrimitive."
<primitive: 79>
(numberOfBytes isInteger and:
[headerWord isInteger and:
[numberOfBytes >= 0]]) ifTrue: [
"args okay; space must be low"
+ OutOfMemory signal.
- Smalltalk signalLowSpace.
"retry if user proceeds"
^ self newMethod: numberOfBytes header: headerWord
].
^self primitiveFailed!