[Pharo-project] numLiterals > 0 is that possible?

Camillo Bruni camillobruni at gmail.com
Sat Aug 18 12:33:16 CEST 2012


On 2012-08-17, at 22:50, Eliot Miranda <eliot.miranda at gmail.com> wrote:

> On Fri, Aug 17, 2012 at 1:42 PM, Mariano Martinez Peck <
> marianopeck at gmail.com> wrote:
> 
>> Hi guys. Right now we have
>> 
>> methodClass
>> "answer the class that I am installed in"
>> ^self numLiterals > 0
>> ifTrue: [ (self literalAt: self numLiterals) value ]
>> ifFalse: [ nil ]
>> 
>> But of course my image has no method with 0 literals:
>> 
>> (CompiledMethod allInstances select: [:each | each numLiterals = 0 ]) size
>> -> 0
>> 
>> So...can this really happen? or I can just remove the if ?
>> 
> 
> Yes it could happen.  For example, i the Newspeak implementation above
> Squeak these is a collection of inst-var accessors that are shared through
> all Newspeak classes in the system.  

so it will never happen in Pharo right?

> These have a nil methodClass.  If one
> wanted to save space they could have no methodClass instead of nil in the
> methodClass slot.  (Note that the above works for these since nil value =
> value).  So IMO its a harmless piece of defensice programming.  IIABDFI (If
> it ain't broke don't fix it).

again, this is not pharo mentality...



More information about the Pharo-project mailing list