diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-11-04 21:54:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-11-04 21:54:56 -0700 |
commit | e122eb60bcf9188535d42d83e472b64c90b447b4 (patch) | |
tree | 6f9f23b2fe631aaa75b01c378799eb43050314f0 /eval.c | |
parent | 708a6d5e5fa76d1a5a2d955abfd911af8ff946ac (diff) | |
download | txr-e122eb60bcf9188535d42d83e472b64c90b447b4.tar.gz txr-e122eb60bcf9188535d42d83e472b64c90b447b4.tar.bz2 txr-e122eb60bcf9188535d42d83e472b64c90b447b4.zip |
Don't track macro origin of interned objects.
* eval.c (set_origin): If either form or origin isn't
a heap object, or is an interned symbol, then
don't record the relationship.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -239,7 +239,9 @@ val lookup_origin(val form) static val set_origin(val form, val origin) { - if (origin && form != origin) + if (origin && form != origin && is_ptr(form) && + (!symbolp(form) || !symbol_package(form)) && + is_ptr(origin) && (!symbolp(origin) || !symbol_package(origin))) sethash(origin_hash, form, origin); return form; } |