diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-11 19:47:27 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-11 19:47:27 +0100 |
commit | 59460d1a4877f8b07cc91e045f07eb2c02bb8771 (patch) | |
tree | 758756ca81c5795f994e1d07f79169a17a7ef9ac /Lisp/weak-hash-tables.lisp | |
parent | 31cd0253d521f458da739ac0b3c545a32bfadf03 (diff) |
Do not rely on the GC to remove entries of a weak hash table.
This patch finally makes Objective-CL not crash consistently on CLISP.
darcs-hash:20d392bc8e5203efd20e3c57224c2b1338ecb8d9
Diffstat (limited to 'Lisp/weak-hash-tables.lisp')
-rw-r--r-- | Lisp/weak-hash-tables.lisp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Lisp/weak-hash-tables.lisp b/Lisp/weak-hash-tables.lisp index b016aa5..80b6100 100644 --- a/Lisp/weak-hash-tables.lisp +++ b/Lisp/weak-hash-tables.lisp @@ -33,6 +33,8 @@ ;; Clean up. (remhash key hash-table))))) + (setf (fdefinition 'weak-remhash) (fdefinition 'remhash)) + (defun (setf weak-gethash) (value key hash-table) (setf (gethash key hash-table) (trivial-garbage:make-weak-pointer value)))) @@ -47,6 +49,7 @@ :test 'eql)) (setf (fdefinition 'weak-gethash) (fdefinition 'gethash)) + (setf (fdefinition 'weak-remhash) (fdefinition 'remhash)) (defun (setf weak-gethash) (value key hash-table) (setf (gethash key hash-table) value))) |