diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-06-03 23:05:31 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-06-03 23:05:31 +0900 |
| commit | e4529c065dfcd844dbea11ba3822af7528393450 (patch) | |
| tree | 3d35638eff080e831556bec17d02d2660be19e0e /src/gc.c | |
| parent | 3be1c8890774c04d65bbed87914e9453d1496eed (diff) | |
| download | mruby-e4529c065dfcd844dbea11ba3822af7528393450.tar.gz mruby-e4529c065dfcd844dbea11ba3822af7528393450.zip | |
make arrays to share bodies
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -457,7 +457,10 @@ obj_free(mrb_state *mrb, struct RBasic *obj) break; case MRB_TT_ARRAY: - mrb_free(mrb, ((struct RArray*)obj)->buf); + if (obj->flags & MRB_ARY_SHARED) + mrb_ary_decref(mrb, ((struct RArray*)obj)->aux.shared); + else + mrb_free(mrb, ((struct RArray*)obj)->buf); break; case MRB_TT_HASH: |
