dict_itor * hashtable_dict_itor_new(hashtable *table) { dict_itor *itor; ASSERT(table != NULL); if ((itor = MALLOC(sizeof(*itor))) == NULL) return NULL; if ((itor->_itor = hashtable_itor_new(table)) == NULL) { FREE(itor); return NULL; } itor->_destroy = (idestroy_func)hashtable_itor_destroy; itor->_valid = (valid_func)hashtable_itor_valid; itor->_invalid = (invalidate_func)hashtable_itor_invalidate; itor->_next = (next_func)hashtable_itor_next; itor->_prev = (prev_func)hashtable_itor_prev; itor->_nextn = (nextn_func)hashtable_itor_nextn; itor->_prevn = (prevn_func)hashtable_itor_prevn; itor->_first = (first_func)hashtable_itor_first; itor->_last = (last_func)hashtable_itor_last; itor->_search = (isearch_func)hashtable_itor_search; itor->_key = (key_func)hashtable_itor_key; itor->_data = (data_func)hashtable_itor_data; itor->_cdata = (cdata_func)hashtable_itor_cdata; itor->_setdata = (dataset_func)hashtable_itor_set_data; return itor; }
dict_itor* hashtable_dict_itor_new(hashtable* table) { ASSERT(table != NULL); dict_itor* itor = MALLOC(sizeof(*itor)); if (itor) { if (!(itor->_itor = hashtable_itor_new(table))) { FREE(itor); return NULL; } itor->_vtable = &hashtable_itor_vtable; } return itor; }