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 | e1608fed99cb278d322a27f68c5cb7458934544d (patch) | |
tree | e83944be826090afa5711c6034194a77770a16dd /eval.c | |
parent | 2838fb0ab11336c46bb3ed43a147c1cdf843630d (diff) | |
download | txr-e1608fed99cb278d322a27f68c5cb7458934544d.tar.gz txr-e1608fed99cb278d322a27f68c5cb7458934544d.tar.bz2 txr-e1608fed99cb278d322a27f68c5cb7458934544d.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.
Diffstat (limited to 'eval.c')
-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); |