Path: utzoo!utgpu!watserv1!watmath!att!mcdchg!laidbak!ism.isc.com!uunet!samsung!uakari.primate.wisc.edu!sdd.hp.com!hplabs!hplabsz!dleigh From: dleigh@hplabsz.HPL.HP.COM (Darren Leigh) Newsgroups: comp.lang.scheme Subject: Re: OOP in XScheme Summary: fixed fix Message-ID: <6109@hplabsz.HPL.HP.COM> Date: 23 Oct 90 17:53:32 GMT References: <9010190348.aa28638@mintaka.lcs.mit.edu> Reply-To: dleigh@hplabs.UUCP (Darren Leigh) Organization: Hewlett-Packard Laboratories Lines: 27 In article hultquis@nas.nasa.gov writes: >>> Subject: xscheme object system bugs and fixes > >This patch results in the re-sending of the message to the >superclass of the class of the object. This is not very useful. > >By changing the zero to a one, the message will be sent >to the superclass of the class in which the current method was >defined. This is surely what was intended. Jeff is correct here. I sent out the broken send-super fix and a couple of days later, someone mailed me some code that that didn't work. I dug through the code and discovered the real fix as well. My face is red. 'Twas hubris on my part to suspect the amazing David Betz of an abstraction violation rather than a typo. The send-super fix that does work is what Jeff said: In xsendsuper() just change: cls = getivar(getelement(car(cdr(obj)),0),SUPERCLASS); to: cls = getivar(getelement(car(cdr(obj)),1),SUPERCLASS); Darren Leigh dleigh@hplabs.hp.com hplabs!dleigh