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
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project