diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-08-06 10:47:15 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 16:21:28 +0900 |
| commit | a733c6e0ea89bb20c082a9b20b10f68aa048ab6c (patch) | |
| tree | 9bd02484d485b6a49e9a0255f4773204235eadc6 /src/gc.c | |
| parent | 425b142168d16ff2befc0b90d887e68423db9911 (diff) | |
| download | mruby-a733c6e0ea89bb20c082a9b20b10f68aa048ab6c.tar.gz mruby-a733c6e0ea89bb20c082a9b20b10f68aa048ab6c.zip | |
Do not call `mrb_mc_clear_by_class` at `mrb` finalization.
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -811,12 +811,14 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) case MRB_TT_SCLASS: mrb_gc_free_mt(mrb, (struct RClass*)obj); mrb_gc_free_iv(mrb, (struct RObject*)obj); - mrb_mc_clear_by_class(mrb, (struct RClass*)obj); + if (!end) + mrb_mc_clear_by_class(mrb, (struct RClass*)obj); break; case MRB_TT_ICLASS: if (MRB_FLAG_TEST(obj, MRB_FL_CLASS_IS_ORIGIN)) mrb_gc_free_mt(mrb, (struct RClass*)obj); - mrb_mc_clear_by_class(mrb, (struct RClass*)obj); + if (!end) + mrb_mc_clear_by_class(mrb, (struct RClass*)obj); break; case MRB_TT_ENV: { |
