Andrew,
Proxies don't subclass UndefinedObject, they subclass nil, much like how Object subclasses nil.
i.e.
nil subclass: #Object [...] nil subclass: #ObjectTracer [...] nil subclass: #Proxy [...]
Ranjan --- "Andrew P. Black" black@cse.ogi.edu wrote:
At 14:22 -0500 2000.2.28, Norton, Chris wrote:
In addition to the other fine responses to your
question (ProtoObject is the
superclass of Object, et. al), I believe that
people also define Proxy
objects by subclassing nil (UndefinedObject),
rather than Object. Proxy
objects are common ...
Unfortunately, since UndefinedObject is itself a subclass of Object, making Proxy a subclass of UndefinedObject does not achieve the desired effect. (It does achieve one _undesired_ effect -- making all the Proxy objects print as nil!
I believe that the reasons for the creation of ProtoObject include the need to have a place to put Proxy objects that is not a subclass of Object. ObjectOut and ImageSegmentRootStub are two proxy objects in the image that are subclsses of ProxyObject. Marcel's Trampoline code should probably be modified so that Trampoline is a subclass of ProtoObject rather than UndefinedObject.
__________________________________________________ Do You Yahoo!? Talk to your friends online with Yahoo! Messenger. http://im.yahoo.com
squeak-dev@lists.squeakfoundation.org