diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-03-08 17:15:52 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2014-03-12 02:36:35 -0400 |
commit | c6a2691fff2863209729aba5f54e3f874bbbf1c4 (patch) | |
tree | 0654b3b27eab98b055bc5c19f77d6ac4f5d1f533 /test-suite/tests/hash.test | |
parent | 3aecd36464b1d916991bcc57acd6ec42e1cabbdc (diff) | |
download | guile-c6a2691fff2863209729aba5f54e3f874bbbf1c4.tar.gz |
Test for deleted weak pairs in hash-for-each.
* libguile/hashtab.c (scm_internal_hash_for_each_handle): Test for
deleted weak pairs.
* test-suite/tests/hash.test: Add test case.
Diffstat (limited to 'test-suite/tests/hash.test')
-rw-r--r-- | test-suite/tests/hash.test | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test-suite/tests/hash.test b/test-suite/tests/hash.test index 64d10bb38..4c21d7129 100644 --- a/test-suite/tests/hash.test +++ b/test-suite/tests/hash.test @@ -347,3 +347,15 @@ (pass-if (equal? 2 (hash-count (lambda (k v) (string? v)) table))))) + +;;; +;;; weak key hash table +;;; + +(with-test-prefix "weak key hash table" + (pass-if "hash-for-each after gc" + (let ((table (make-weak-key-hash-table))) + (hashq-set! table (list 'foo) 'bar) + (gc) + ;; Iterate over deleted weak ref without crashing. + (unspecified? (hash-for-each (lambda (key value) key) table))))) |