Lines Matching refs:entry

300     data_unset * const entry = a->sorted[ipos];  in array_extract_element_klen()  local
307 if (entry != a->data[last_ndx]) { in array_extract_element_klen()
311 while (entry != a->data[ndx]) ++ndx; in array_extract_element_klen()
315 return entry; in array_extract_element_klen()
348 static data_unset * array_insert_data_at_pos(array * const a, data_unset * const entry, const uint_… in array_insert_data_at_pos() argument
359 a->data[ndx] = entry; in array_insert_data_at_pos()
366 *d = entry; in array_insert_data_at_pos()
367 return entry; in array_insert_data_at_pos()
427 static data_unset **array_find_or_insert(array * const a, data_unset * const entry) { in array_find_or_insert() argument
428 force_assert(NULL != entry); in array_find_or_insert()
431 if (buffer_is_unset(&entry->key)) { in array_find_or_insert()
432 array_insert_data_at_pos(a, entry, a->used); in array_find_or_insert()
437 const int32_t ipos = array_get_index(a, BUF_PTR_LEN(&entry->key)); in array_find_or_insert()
440 array_insert_data_at_pos(a, entry, (uint32_t)(-ipos - 1)); in array_find_or_insert()
445 void array_replace(array * const a, data_unset * const entry) { in array_replace() argument
446 if (NULL == array_find_or_insert(a, entry)) return; in array_replace()
449 const int32_t ipos = array_get_index(a, BUF_PTR_LEN(&entry->key)); in array_replace()
452 force_assert(old != entry); in array_replace()
453 a->sorted[ipos] = entry; in array_replace()
458 a->data[i] = entry; in array_replace()
463 void array_insert_unique(array * const a, data_unset * const entry) { in array_insert_unique() argument
466 if (NULL != (old = array_find_or_insert(a, entry))) { in array_insert_unique()
467 if (entry->fn->insert_dup) { in array_insert_unique()
468 force_assert((*old)->type == entry->type); in array_insert_unique()
469 entry->fn->insert_dup(*old, entry); in array_insert_unique()
471 entry->fn->free(entry); in array_insert_unique()