On Mon, Dec 13, 2010 at 9:42 PM, Schwab,Wilhelm K <[email protected]>wrote:

> Mariano,
>
> SmallInteger is handled as (in Dolphin parlance) as an immediate object,
> meaning that they are encoded entirely in the object pointer; as such, they
> can't have instance variables.  Object cannot have ivs either, because it
> has subclasses that are so constrained.
>

Hi Bill, thanks. Yes, in SqueakVM it is the same...but I am adding an
instVar to the SmallInteger CLASS, not to their instances ;)
but still...,maybe the VM assumes that the SmallInteger CLASS is of certain
fixed size.

mariano


>
> Bill
>
>
> ________________________________________
> From: [email protected] [
> [email protected]] On Behalf Of Mariano Martinez
> Peck [[email protected]]
> Sent: Monday, December 13, 2010 3:16 PM
> To: Pharo Development; Squeak Development Discussion Virtual Machine
> Subject: [Pharo-project] Is SmallInteger a really too dangerous class?
>
> Hi folks. Sorry for the cross-post, I am not sure if it is image or vm
> problem.
>
> If I implement this:
>
> SmallInteger >> initialize
>    self addInstVarName: 'Zaraza'.
>
> I have the error: 'SmallInteger cannot be changed'
>
> This is because SmallInteger is in the ClassBuilder >> tooDangerousClasses
> and the error is in ClassBuilder >> name: className inEnvironment: env
> subclassOf: newSuper type: type instanceVariableNames: instVarString
> classVariableNames: classVarString poolDictionaries: poolString category:
> category unsafe: unsafe
>
> Now....since this is Smalltalk, I can just comment something, continue, or
> any other kind of hack so that I can add class variables to SmallInetger.
> For my CompiledMethod proxies stuff, I am using SmallIntegers and I have
> some crashes (one is due to a corrupt heap and Eliot said something about
> sizes)...I wonder if this is related to this...So the question is:  is
> really SMallInteger a too dangerous class so that it cannot be changed? not
> even adding a class variable???  does the VM assume that the class
> SmallInetger has a fixed size?  if true, where?
>
> Thanks in advance
>
> Mariano
>
>

Reply via email to