On May 18, 2010, at 4:15 33PM, Henrik Johansen wrote:

> On May 18, 2010, at 3:39 33PM, Mariano Martinez Peck wrote:
> 
>> (InstructionClient>>#methodReturnTop) = (InstructionClient>>#doDup) 
> 
> methodReturnTop startPC -> 13
> methodReturnTop endPC -> 12.
> 
> I have a slight feeling that is one of the reasons :)
> Seems to be related to method trailers size assumptions not holding.
> 
> 
> Also, sameLiteralsAs: is a mess.
> There are no comments really revealing the intention of the 8 ifTrue/False 
> branches, no refactoring to use revealing method names...
> Can anyone explain to me why numLits  -1 = index is checked?
> 
> At least for methodReturnTop, which has 2 literals, it certainly does not 
> seem like numLits -1  contains properties.... 

Oh, ok, numLit -1 contains the selector.

So that would be the  "except selector" Lukas mentioned.
Same method in different classes do not  equal eachother though, if I've not 
made a mistake in:

|mrtCp|
mrtCp := (InstructionClient>>#methodReturnTop) copy.
mrtCp literalAt: 2 put: #ContextPart->ContextPart.
(InstructionClient>>#methodReturnTop) = mrtCp

At the very least, the branches of 
index = 1 and: [ #(117 120) includes: self primitive ])
                                        ifTrue: [

REALLY deserve some comments...

Cheers,
Henry
 


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to