quipu mercurial repository
Revision | 83712b4337932acbe04acba05a4955c3767dafec (tree) |
---|---|
Time | 2018-05-19 05:44:25 |
Author | Agustina Arzille <avarzille@rise...> |
Commiter | Agustina Arzille |
Fix alias resolution
@@ -2921,12 +2921,13 @@ | ||
2921 | 2921 | static object |
2922 | 2922 | macroexp_atom (interpreter *interp, object env, object sym) |
2923 | 2923 | { |
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); | |
2930 | 2931 | } |
2931 | 2932 | |
2932 | 2933 | static object |
@@ -977,6 +977,9 @@ | ||
977 | 977 | atomic_or ((atomic_t *)bp, mask); |
978 | 978 | } |
979 | 979 | |
980 | +// Needed to prevent name clashing. | |
981 | +typedef lock lock_t; | |
982 | + | |
980 | 983 | void gcinfo::do_gc (interpreter *interp, bool full) |
981 | 984 | { |
982 | 985 | size_t prev = this->acc_bytes; |
@@ -1019,7 +1022,7 @@ | ||
1019 | 1022 | |
1020 | 1023 | // Mark the thread's locks. |
1021 | 1024 | 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; | |
1023 | 1026 | |
1024 | 1027 | // Mark the interpreter's temporary values. |
1025 | 1028 | for (dliter i (&ip2->values, &valref::link); i.valid (); i.adv ()) |