On 09.05.2011 09:36, Mariano Martinez Peck wrote:


On Mon, May 9, 2011 at 6:14 AM, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 May 2011 00:52, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
> Hi guys, Maybe it is too late and I am not seeing something obvious...so
> another look is really appreciated. If I do:
>
> (CompiledMethod allInstances select:  [:each | each trailer kind =
> #VarLengthSourcePointer] ) first
> ---> (CodeLoader class>>#initialize "a CompiledMethod(311951360)")
>
> But then:
>
> (CodeLoader class >> #initialize) trailer kind
> ----> #SourcePointer
>
> WHYYY??  why it is answering #SourcePointer instead of
> #VarLengthSourcePointer  ??
>
> grrr how can that be possible???  It happens the same to each of the
> CompiledMethods I select as #VarLengthSourcePointer.  When I then ask the
> #kind  they always answer #SourcePointer  instead of #VarLengthSourcePointer
>
is it same compiled methods?
Because it is absolutely normal if they using different source pointer.


I didn't understand your question. Yes, it is exactly the same CompiledMethod.
He's asking if they ARE the same

(CodeLoader class >> #initialize) == (CompiledMethod allInstances select:  [:each | each trailer kind = #VarLengthSourcePointer] ) first) ?

Just because the CompiledMethds class and selector matches so its printstring will be 'SomeClass>>#someSelector', does not necessarily mean it is the one currently installed in the method dictionary.

Cheers,
Henry