• R/O
  • SSH

quipu: Commit

quipu mercurial repository


Commit MetaInfo

Revision83712b4337932acbe04acba05a4955c3767dafec (tree)
Time2018-05-19 05:44:25
AuthorAgustina Arzille <avarzille@rise...>
CommiterAgustina Arzille

Log Message

Fix alias resolution

Change Summary

Incremental Difference

diff -r ad0c5dadd98c -r 83712b433793 compiler.cpp
--- a/compiler.cpp Fri May 18 15:56:45 2018 -0300
+++ b/compiler.cpp Fri May 18 17:44:25 2018 -0300
@@ -2921,12 +2921,13 @@
29212921 static object
29222922 macroexp_atom (interpreter *interp, object env, object sym)
29232923 {
2924- object val = sym;
2925- if (nksymbol_p (val) && (val = lookup_alias (env, sym)) == sym &&
2926- (as_symbol(val)->flags & symbol::alias_flag))
2927- val = symval (val);
2928-
2929- qp_return (val);
2924+ valref s2 (interp, sym);
2925+
2926+ if (nksymbol_p (*s2) && (*s2 = lookup_alias (env, sym)) == sym &&
2927+ (as_symbol(*s2)->flags & symbol::alias_flag))
2928+ *s2 = symval (*s2);
2929+
2930+ qp_return (*s2);
29302931 }
29312932
29322933 static object
diff -r ad0c5dadd98c -r 83712b433793 memory.cpp
--- a/memory.cpp Fri May 18 15:56:45 2018 -0300
+++ b/memory.cpp Fri May 18 17:44:25 2018 -0300
@@ -977,6 +977,9 @@
977977 atomic_or ((atomic_t *)bp, mask);
978978 }
979979
980+// Needed to prevent name clashing.
981+typedef lock lock_t;
982+
980983 void gcinfo::do_gc (interpreter *interp, bool full)
981984 {
982985 size_t prev = this->acc_bytes;
@@ -1019,7 +1022,7 @@
10191022
10201023 // Mark the thread's locks.
10211024 for (dliter lk (&thr.locks, &lock::chain); lk.valid (); lk.adv ())
1022- lk.get<class lock>().full |= FLAGS_OLDGEN;
1025+ lk.get<lock_t>().full |= FLAGS_OLDGEN;
10231026
10241027 // Mark the interpreter's temporary values.
10251028 for (dliter i (&ip2->values, &valref::link); i.valid (); i.adv ())
Show on old repository browser