src/hash_map.c

changeset 850
b2bc48c2b251
parent 829
7d4e31d295af
child 853
d4baf4dd55c3
equal deleted inserted replaced
849:edb9f875b7f9 850:b2bc48c2b251
331 enum cx_map_iterator_type type 331 enum cx_map_iterator_type type
332 ) { 332 ) {
333 CxIterator iter; 333 CxIterator iter;
334 334
335 iter.src_handle = map; 335 iter.src_handle = map;
336 iter.base.valid = cx_hash_map_iter_valid; 336 iter.elem_count = map->size;
337 iter.base.next = cx_hash_map_iter_next;
338 337
339 switch (type) { 338 switch (type) {
340 case CX_MAP_ITERATOR_PAIRS: 339 case CX_MAP_ITERATOR_PAIRS:
340 iter.elem_size = sizeof(CxMapEntry);
341 iter.base.current = cx_hash_map_iter_current_entry; 341 iter.base.current = cx_hash_map_iter_current_entry;
342 break; 342 break;
343 case CX_MAP_ITERATOR_KEYS: 343 case CX_MAP_ITERATOR_KEYS:
344 iter.elem_size = sizeof(CxHashKey);
344 iter.base.current = cx_hash_map_iter_current_key; 345 iter.base.current = cx_hash_map_iter_current_key;
345 break; 346 break;
346 case CX_MAP_ITERATOR_VALUES: 347 case CX_MAP_ITERATOR_VALUES:
348 iter.elem_size = map->item_size;
347 iter.base.current = cx_hash_map_iter_current_value; 349 iter.base.current = cx_hash_map_iter_current_value;
348 break; 350 break;
349 default: 351 default:
350 assert(false); 352 assert(false);
351 } 353 }
352 354
355 iter.base.valid = cx_hash_map_iter_valid;
356 iter.base.next = cx_hash_map_iter_next;
353 iter.base.remove = false; 357 iter.base.remove = false;
354 iter.base.mutating = false; 358 iter.base.mutating = false;
355 359
356 iter.slot = 0; 360 iter.slot = 0;
357 iter.index = 0; 361 iter.index = 0;

mercurial