Hi,

I just found this bug in the hash-table-merge! function (modul/srfi/srfi-69.scm). Instead of merging both hash tables, it was ignoring one of them (other-ht). Attached is the fix, where it now folds over other-ht and store its data in ht.

Cheers,

Ricardo G. Herdt
From 180a9e14b807295aa31966a52bfd732647458ef9 Mon Sep 17 00:00:00 2001
From: "Ricardo G. Herdt" <r.he...@posteo.de>
Date: Fri, 8 May 2020 01:37:24 +0200
Subject: [PATCH] Fix hash-table-merge! bug.

* module/srfi/srfi-69.scm : fold over second hash table.
---
 module/srfi/srfi-69.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/module/srfi/srfi-69.scm b/module/srfi/srfi-69.scm
index b9486c465..91bcc77db 100644
--- a/module/srfi/srfi-69.scm
+++ b/module/srfi/srfi-69.scm
@@ -330,7 +330,7 @@ Answer the final F result."
   "Add all key/value pairs from OTHER-HT to HT, overriding HT's
 mappings where present.  Return HT."
   (hash-table-fold
-   ht (lambda (k v ign) (hash-table-set! ht k v)) #f)
+   other-ht (lambda (k v ign) (hash-table-set! ht k v)) #f)
   ht)
 
 ;;; srfi-69.scm ends here
-- 
2.20.1

2020-05-08 Ricardo G. Herdt <r.he...@posteo.de>

* srfi-69.scm: hash-table-merge! was ignoring the second hash table.
Fold over other-ht, and store its key-values in ht.

Reply via email to