|
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 ---
[Prev in Thread] | Current Thread | [Next in Thread] |