aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gc.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gc.cpp b/src/gc.cpp
index 6655e40..59036df 100644
--- a/src/gc.cpp
+++ b/src/gc.cpp
@@ -57,10 +57,12 @@ GC::alloc(size_t size)
inline void
mark(const Object* obj)
{
+ if (obj->tag() == T_SYMBOL)
+ return;
+
if (!obj || obj->marked())
return;
- obj->mark(true);
if (obj->tag() != T_UNKNOWN) {
const ATuple* tup = ((const AST*)obj)->to_tuple();
if (tup)