From 5fc265e8d45d9d5ec84fd803c7d2b5cbca7fc7a2 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Wed, 3 Feb 2016 17:35:07 +0800 Subject: [PATCH] *fixed a wrong garbage collection bug with members of a class instance. --- HISTORY | 1 + core/my_basic.c | 10 ++++++++-- output/my_basic.exe | Bin 359936 -> 359936 bytes 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index f0ec0c3..880a494 100755 --- a/HISTORY +++ b/HISTORY @@ -1,5 +1,6 @@ Feb. 3 2016 Added an INDEX_OF statement +Fixed a wrong garbage collection bug with members of a class instance Fixed a wrong dereferencing bug with referenced type hashing and comparison Fixed an invalid lambda bug with GC Fixed a memory leak with sub routine when assigning it as an upvalue diff --git a/core/my_basic.c b/core/my_basic.c index 1b301b1..07f48d0 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -349,6 +349,7 @@ typedef struct _gc_t { _ht_node_t* table; _ht_node_t* recursive_table; _ht_node_t* collected_table; + _ht_node_t* valid_table; int_t collecting; } _gc_t; @@ -5168,7 +5169,9 @@ void _gc_add(_ref_t* ref, void* data, _gc_t* gc) { else table = ref->s->gc.table; - if(ref->count && *ref->count > _NONE_REF) + if(gc && _ht_find(gc->valid_table, ref)) + _ht_remove(table, ref, 0); + else if(ref->count && *ref->count > _NONE_REF) _ht_set_or_insert(table, ref, data); else _ht_remove(table, ref, 0); @@ -5511,7 +5514,7 @@ void _gc_collect_garbage(mb_interpreter_t* s, int depth) { if(s->gc.collecting) return; s->gc.collecting++; /* Get reachable information */ - valid = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); + s->gc.valid_table = valid = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); _gc_get_reachable(s, valid); /* Get unreachable information */ _HT_FOREACH(valid, _do_nothing_on_object, _ht_remove_exist, s->gc.table); @@ -5530,6 +5533,7 @@ void _gc_collect_garbage(mb_interpreter_t* s, int depth) { } while(1); /* Tidy */ _ht_clear(s->gc.collected_table); + s->gc.valid_table = 0; _ht_clear(valid); _ht_destroy(valid); s->gc.collecting--; @@ -9679,6 +9683,8 @@ int mb_open(struct mb_interpreter_t** s) { (*s)->gc.table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); (*s)->gc.recursive_table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); (*s)->gc.collected_table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); + (*s)->gc.valid_table = 0; + (*s)->gc.collecting = 0; running = _create_running_context(true); running->meta = _SCOPE_META_ROOT; diff --git a/output/my_basic.exe b/output/my_basic.exe index 07d739f9ad00109680ad504f6714c5652d2cd198..ee9dcc7ea38b8e15f0f2314cf659d288019c567e 100755 GIT binary patch delta 43384 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 delta 43186 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