diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-10-11 08:23:44 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-10-11 08:23:44 -0700 |
commit | ce51f7c8fcfe9ccc8037e6a491ce88d74090e915 (patch) | |
tree | e83944be826090afa5711c6034194a77770a16dd | |
parent | 1b66923b060194d7fc63f9615103f339995ab829 (diff) | |
download | txr-ce51f7c8fcfe9ccc8037e6a491ce88d74090e915.tar.gz txr-ce51f7c8fcfe9ccc8037e6a491ce88d74090e915.tar.bz2 txr-ce51f7c8fcfe9ccc8037e6a491ce88d74090e915.zip |
expander: origin_hash must be eq-based.
* eval.c (eval_init): Initialize origin_hash as eq-based hash
table, not eql-based. The main culprit are range #R(x y)
objects. eql equality recurses over these, and if it
encounters a circular one like #R(#1# #1#), it crashes.
-rw-r--r-- | eval.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -6141,7 +6141,7 @@ void eval_init(void) call_f = func_n1v(generic_funcall); - origin_hash = make_hash(t, nil, nil); + origin_hash = make_eq_hash(t, nil); dwim_s = intern(lit("dwim"), user_package); progn_s = intern(lit("progn"), user_package); |