Esempio n. 1
0
static bool iterator_map_nextpair(Iterator *iter, void *pkey, void *pval) {
    MapIterator *miter = (MapIterator*)iter;
    MapIter mi = miter->mi;
    *((void**)pkey) = mi->key;
    *((void**)pval) = mi->value;
    if (miter->finis) {
        miter->mi = NULL;
        return false;
    }
    miter->finis = map_iter_next(mi) == NULL;
    return true;
}
Esempio n. 2
0
static void free_prices(map_t *contracts) {
	map_iter_t *iter = map_iter_create();

	for (map_begin(iter, contracts); map_iter_valid(iter, contracts); map_iter_next(iter)) {
		void *contract = (void *)map_iter_key(iter);
		deq_t *prices = map_iter_value(iter);
		int i, size = deq_size(prices);

		FREE(contract);
		for (i = 0; i < size; ++i) {
			float *price = deq_at(prices, i);

			FREE(price);
		}
		deq_destroy(prices);
	}
	map_iter_destroy(iter);
}