From e2a2f1bc5a082fae256454235373e1821ba7974c Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Thu, 14 Jun 1990 14:18:57 +0000 Subject: [PATCH] Fixed a bug in SSET-UNION-OF-DIFFERENCE that prevented the difference from really happening most of the time. --- compiler/sset.lisp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler/sset.lisp b/compiler/sset.lisp index d59eb71fd..a703973bc 100644 --- a/compiler/sset.lisp +++ b/compiler/sset.lisp @@ -126,11 +126,11 @@ ((null el1) t) (let ((num1 (sset-element-number (car el1)))) (loop - (when (null el2) (return-from sset-subsetp nil)) - (let ((num2 (sset-element-number (pop el2)))) - (when (>= num2 num1) - (when (> num2 num1) (return-from sset-subsetp nil)) - (return)))))))) + (when (null el2) (return-from sset-subsetp nil)) + (let ((num2 (sset-element-number (pop el2)))) + (when (>= num2 num1) + (when (> num2 num1) (return-from sset-subsetp nil)) + (return)))))))) ;;; SSet-Equal -- Interface @@ -275,6 +275,7 @@ (when (null el3) (setf (cdr prev-el1) (copy-list el2)) (return-from sset-union-of-difference t)) + (setq num3 (sset-element-number (car el3))) (when (<= num2 num3) (unless (= num2 num3) (let ((new (cons e el1))) -- GitLab