[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug fix

In the pcl beta release of 17 March 1988, there seems to be a bug in
update-slot-accessors--class-1 in std-class.lisp.  The occurance of:
     (neq (slotd-type old-slotd)
	  (slotd-type slotd))
should be changed to:
     (not (equal (slotd-type ...

The bug manifests itself by quietly deleting readers and accessors for
slots whose types are not symbols.  In particular, CLUE and CLX (X
window system interfaces for CommonLisp) break without the change.

It's also not clear to me why update-slot-accessors--class-2 deletes
the old method after adding the new since it would seem to cause the
accessor to be removed entierly if, say, only the type changed and not
the name (this is how the problem above kills accessors with
non-symbol types).  If the old methods were removed before adding the
new it would survive the case where the old and new names were the
same but the forcep flag was still set.