emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#13838: closed ([PATCH] Fix duplicate removal of wi


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#13838: closed ([PATCH] Fix duplicate removal of with-fluids)
Date: Thu, 28 Feb 2013 11:34:01 +0000

Your message dated Thu, 28 Feb 2013 06:31:49 -0500
with message-id <address@hidden>
and subject line Re: bug#13838: [PATCH] Fix duplicate removal of with-fluids
has caused the debbugs.gnu.org bug report #13838,
regarding [PATCH] Fix duplicate removal of with-fluids
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
13838: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13838
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] Fix duplicate removal of with-fluids Date: Thu, 28 Feb 2013 10:40:16 +0100
The following code displayed #f:

(define a (make-fluid))
(define b (make-fluid))
(with-fluids ((a 3) (a 1) (b 2))
             (display (fluid-ref b)))

In general, removing any duplicate that is not right at the end of the
(remaining) list will exhibit this problem.  The fluids and vals
arguments are modified in situ; the previous code only modified vals.
---
 libguile/fluids.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/libguile/fluids.c b/libguile/fluids.c
index f1c09cb..bd59e26 100644
--- a/libguile/fluids.c
+++ b/libguile/fluids.c
@@ -326,6 +326,8 @@ scm_i_make_with_fluids (size_t n, SCM *fluids, SCM *vals)
           {
             vals[i] = vals[j]; /* later bindings win */
             n--;
+            fluids[j] = fluids[n];
+            vals[j] = vals[n];
             break;
           }
   }
-- 
1.7.10.4




--- End Message ---
--- Begin Message --- Subject: Re: bug#13838: [PATCH] Fix duplicate removal of with-fluids Date: Thu, 28 Feb 2013 06:31:49 -0500 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)
Applied, thanks.

     Mark


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]