Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}