void pcore_hash_foreach(phash_pool pool, void (*ret_func)(const puint32 value, void* const data)) { if (!pool) { plog_error("%s(): Нет phash_pool!", __PRETTY_FUNCTION__); return; } if (!ret_func) { plog_error("%s(): Нет функции для вызова!", __PRETTY_FUNCTION__); return; } plog_dbg("%s(): Перебор пула 0x%08X и обращение к 0x%08X", __PRETTY_FUNCTION__, pool, &ret_func); tommy_node* i = tommy_list_head(pool->list); while (i) { phash_object obj = i->data; i = i->next; ret_func(obj->value, obj->data); } }
void test_return() { expect_int(3, ret_func()); expect_int(3, var_ret_func()); }