Hi guys. #pointersTo is broken and that's why some tests of
PointerFinderTest are yellow. Few weeks ago, I changed  #pointsTo: so that
it does not perform primitive 142 but it delegates to a new method
#instVarsInclude: which has the primitive 132 now.

Before this change, if I open a workspace and execute the following:

| aDate |
aDate := Date new.
aDate pointersTo

if you execute that several times, it is ALWAYS empty. After the change, in
different executions answer not only empty but some MethodContext instances
whose method is (ProtoObject>>#pointsTo: "a CompiledMethod(220463104)").
Most of the times, in these MethodContext instances, the receiver are the
instance variables of aDate
So #pointersTo answer, for example, an
Array(CompiledMethod(ProtoObject)>>pointsTo: Time(ProtoObject)>>pointsTo:
Duration(ProtoObject)>>pointsTo:)

This causes #pointersToExcept:  to have a different behavior. If in
#pointersToExcept:  I replace  #pointsTo:  with  #instVarsInclude:  it
works perfect. The only difference is that one includes the class and the
other one doesn't. BUT, in this example, the receiver is aDate, hence,
there shouldn't be any object which class is #aDate. In fact, if I put a
"(anObj class == self) ifTrue: [ self halt. ]" it NEVER HALT. That makes
sense. But I don't understand then why with #pointsTo: it doesnt work and
with #instVarsInclude:  it works perfect.

Any idea?

Thanks in advance,

-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to