diff --git a/core/my_basic.c b/core/my_basic.c index 9db923e..326e8c8 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -3932,6 +3932,20 @@ int _gc_add_reachable(void* data, void* extra, _ht_node_t* ht) { _HT_FOREACH(obj->data.dict->dict, _do_nothing_on_object, _gc_add_reachable, ht); } + break; + case _DT_LIST_IT: + if(!_ht_find(ht, &obj->data.list_it->list->ref)) { + _ht_set_or_insert(ht, &obj->data.list_it->list->ref, obj->data.list_it->list); + _LS_FOREACH(obj->data.list_it->list->list, _do_nothing_on_object, _gc_add_reachable, ht); + } + + break; + case _DT_DICT_IT: + if(!_ht_find(ht, &obj->data.dict_it->dict->ref)) { + _ht_set_or_insert(ht, &obj->data.dict_it->dict->ref, obj->data.dict_it->dict); + _HT_FOREACH(obj->data.dict_it->dict->dict, _do_nothing_on_object, _gc_add_reachable, ht); + } + break; #endif /* MB_ENABLE_COLLECTION_LIB */ default: /* Do nothing */