Merge branch 'fix-586' into 'develop'

slot-definitions-compatible-p: check for the slot class too

Closes #586

See merge request embeddable-common-lisp/ecl!207
This commit is contained in:
Marius Gerbershagen 2020-05-16 18:17:34 +00:00
commit 0d65a6ff5f

View file

@ -226,13 +226,20 @@
for n = (pop new-slotds)
while (and o n)
do (let ((old-alloc (slot-definition-allocation o))
(new-alloc (slot-definition-allocation n)))
(new-alloc (slot-definition-allocation n))
(old-class (class-of o))
(new-class (class-of n)))
(unless (and (eq old-alloc new-alloc)
(eq (slot-definition-name o)
(slot-definition-name n))
(or (not (eq old-alloc :instance))
(= (slot-definition-location o)
(slot-definition-location n))))
(slot-definition-location n)))
(eq old-class new-class)
(or (eq new-class
(find-class 'standard-direct-slot-definition))
(eq new-class
(find-class 'standard-effective-slot-definition))))
(return-from slot-definitions-compatible-p nil)))
finally
(return (and (null o)