diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-22 08:57:42 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-22 08:57:42 +0000 |
commit | e429f1c5844a6efb3c013416e007e77775a16fa3 (patch) | |
tree | 3edb0805f07e90e2a4f360a006700d3a942805bc /gc.c | |
parent | 089d61b4247f5e7e95bfa7dd3c0daa6cbe45fe92 (diff) |
1.1b9_14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -418,6 +418,11 @@ gc_mark(ptr) /* fall through */ case NODE_METHOD: /* 2 */ case NODE_NOT: + case NODE_GASGN: + case NODE_LASGN: + case NODE_DASGN: + case NODE_IASGN: + case NODE_CASGN: obj = RANY(obj->as.node.u2.node); goto Top; @@ -652,7 +657,9 @@ obj_free(obj) } break; case T_STRING: - if (!RANY(obj)->as.string.orig) free(RANY(obj)->as.string.ptr); +#define STR_NO_ORIG FL_USER3 /* copied from string.c */ + if (!RANY(obj)->as.string.orig && FL_TEST(obj, STR_NO_ORIG)) + free(RANY(obj)->as.string.ptr); break; case T_ARRAY: if (RANY(obj)->as.array.ptr) free(RANY(obj)->as.array.ptr); |