src/hash_map.c

changeset 829
7d4e31d295af
parent 709
1e8ba59e7911
equal deleted inserted replaced
828:88fa3381206d 829:7d4e31d295af
324 iter->kv_data.value = elm->data; 324 iter->kv_data.value = elm->data;
325 } 325 }
326 } 326 }
327 } 327 }
328 328
329 static bool cx_hash_map_iter_flag_rm(void *it) {
330 struct cx_iterator_base_s *iter = it;
331 if (iter->mutating) {
332 iter->remove = true;
333 return true;
334 } else {
335 return false;
336 }
337 }
338
339 static CxIterator cx_hash_map_iterator( 329 static CxIterator cx_hash_map_iterator(
340 CxMap const *map, 330 CxMap const *map,
341 enum cx_map_iterator_type type 331 enum cx_map_iterator_type type
342 ) { 332 ) {
343 CxIterator iter; 333 CxIterator iter;
358 break; 348 break;
359 default: 349 default:
360 assert(false); 350 assert(false);
361 } 351 }
362 352
363 iter.base.flag_removal = cx_hash_map_iter_flag_rm;
364 iter.base.remove = false; 353 iter.base.remove = false;
365 iter.base.mutating = false; 354 iter.base.mutating = false;
366 355
367 iter.slot = 0; 356 iter.slot = 0;
368 iter.index = 0; 357 iter.index = 0;

mercurial