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