hamt 373 maint/gnulib/lib/hamt.c Hamt *hamt = XMALLOC (Hamt); hamt 374 maint/gnulib/lib/hamt.c hamt->functions = functions; hamt 375 maint/gnulib/lib/hamt.c hamt->root = NULL; hamt 376 maint/gnulib/lib/hamt.c return hamt; hamt 381 maint/gnulib/lib/hamt.c hamt_copy (Hamt *hamt) hamt 384 maint/gnulib/lib/hamt.c new_hamt->functions = copy_function_table (hamt->functions); hamt 385 maint/gnulib/lib/hamt.c new_hamt->root = hamt->root == NULL ? NULL : copy_entry (hamt->root); hamt 441 maint/gnulib/lib/hamt.c hamt_free (Hamt *hamt) hamt 443 maint/gnulib/lib/hamt.c if (hamt->root != NULL) hamt 444 maint/gnulib/lib/hamt.c free_entry (hamt->functions, hamt->root); hamt 445 maint/gnulib/lib/hamt.c free_function_table (hamt->functions); hamt 446 maint/gnulib/lib/hamt.c free (hamt); hamt 512 maint/gnulib/lib/hamt.c hamt_lookup (const Hamt *hamt, const void *elt) hamt 514 maint/gnulib/lib/hamt.c if (hamt->root == NULL) hamt 517 maint/gnulib/lib/hamt.c return entry_lookup (hamt->functions, hamt->root, elt, hamt 518 maint/gnulib/lib/hamt.c hash_element (hamt->functions, elt)); hamt 715 maint/gnulib/lib/hamt.c hamt_insert (Hamt *hamt, Hamt_entry **elt_ptr) hamt 718 maint/gnulib/lib/hamt.c Hamt_entry *new_entry = root_insert (hamt->functions, hamt->root, hamt 723 maint/gnulib/lib/hamt.c if (new_entry == hamt->root) hamt 724 maint/gnulib/lib/hamt.c return hamt; hamt 727 maint/gnulib/lib/hamt.c new_hamt->functions = copy_function_table (hamt->functions); hamt 736 maint/gnulib/lib/hamt.c hamt_replace (Hamt *hamt, Hamt_entry **elt_ptr) hamt 739 maint/gnulib/lib/hamt.c new_hamt->functions = copy_function_table (hamt->functions); hamt 740 maint/gnulib/lib/hamt.c new_hamt->root = root_insert (hamt->functions, hamt->root, elt_ptr, true, hamt 844 maint/gnulib/lib/hamt.c hamt_remove (Hamt *hamt, Hamt_entry **elt_ptr) hamt 847 maint/gnulib/lib/hamt.c Hamt_entry *new_entry = root_remove (hamt->functions, hamt->root, elt_ptr, hamt 852 maint/gnulib/lib/hamt.c if (new_entry == hamt->root) hamt 853 maint/gnulib/lib/hamt.c return hamt; hamt 856 maint/gnulib/lib/hamt.c new_hamt->functions = copy_function_table (hamt->functions); hamt 927 maint/gnulib/lib/hamt.c hamt_do_while (const Hamt *hamt, Hamt_processor *proc, void *data) hamt 929 maint/gnulib/lib/hamt.c if (hamt->root == NULL) hamt 933 maint/gnulib/lib/hamt.c return entry_do_while (hamt->root, proc, data, &success); hamt 944 maint/gnulib/lib/hamt.c hamt_iterator (Hamt *hamt) hamt 947 maint/gnulib/lib/hamt.c iter.hamt = hamt_copy (hamt); hamt 948 maint/gnulib/lib/hamt.c Hamt_entry *entry = hamt->root; hamt 970 maint/gnulib/lib/hamt.c hamt_free (iter->hamt); hamt 979 maint/gnulib/lib/hamt.c new_iter.hamt = hamt_copy (iter->hamt); hamt 1045 maint/gnulib/lib/hamt.c hamt_insert_x (Hamt *hamt, Hamt_entry **elt_ptr) hamt 1048 maint/gnulib/lib/hamt.c Hamt_entry *old_root = hamt->root; hamt 1049 maint/gnulib/lib/hamt.c hamt->root = root_insert (hamt->functions, old_root, elt_ptr, false, false); hamt 1050 maint/gnulib/lib/hamt.c if (old_root != hamt->root && old_root != NULL) hamt 1051 maint/gnulib/lib/hamt.c free_entry (hamt->functions, old_root); hamt 1063 maint/gnulib/lib/hamt.c hamt_replace_x (Hamt *hamt, Hamt_entry *elt) hamt 1065 maint/gnulib/lib/hamt.c Hamt_entry *old_root = hamt->root; hamt 1066 maint/gnulib/lib/hamt.c hamt->root = root_insert (hamt->functions, old_root, &elt, true, false); hamt 1067 maint/gnulib/lib/hamt.c if (old_root != hamt->root && old_root != NULL) hamt 1068 maint/gnulib/lib/hamt.c free_entry (hamt->functions, old_root); hamt 1076 maint/gnulib/lib/hamt.c hamt_remove_x (Hamt *hamt, Hamt_entry *elt) hamt 1078 maint/gnulib/lib/hamt.c Hamt_entry *old_root = hamt->root; hamt 1079 maint/gnulib/lib/hamt.c hamt->root = root_remove (hamt->functions, old_root, &elt, false); hamt 1080 maint/gnulib/lib/hamt.c if (old_root != hamt->root) hamt 1081 maint/gnulib/lib/hamt.c free_entry (hamt->functions, old_root); hamt 117 maint/gnulib/lib/hamt.h typedef struct hamt Hamt; hamt 143 maint/gnulib/lib/hamt.h extern void hamt_free (Hamt *hamt); hamt 155 maint/gnulib/lib/hamt.h extern Hamt *hamt_copy (Hamt *hamt) hamt 164 maint/gnulib/lib/hamt.h extern Hamt_entry *hamt_lookup (const Hamt *hamt, const void *elt); hamt 174 maint/gnulib/lib/hamt.h extern Hamt *hamt_insert (Hamt *hamt, Hamt_entry **elt_ptr); hamt 180 maint/gnulib/lib/hamt.h extern Hamt *hamt_remove (Hamt *hamt, Hamt_entry **elt_ptr); hamt 186 maint/gnulib/lib/hamt.h extern Hamt *hamt_replace (Hamt *hamt, Hamt_entry **elt_ptr); hamt 201 maint/gnulib/lib/hamt.h extern size_t hamt_do_while (const Hamt *hamt, Hamt_processor *proc, hamt 212 maint/gnulib/lib/hamt.h Hamt* hamt; hamt 222 maint/gnulib/lib/hamt.h extern Hamt_iterator hamt_iterator (Hamt *hamt); hamt 246 maint/gnulib/lib/hamt.h extern bool hamt_insert_x (Hamt *hamt, Hamt_entry **elt_ptr); hamt 250 maint/gnulib/lib/hamt.h extern bool hamt_replace_x (Hamt *hamt, Hamt_entry *elt); hamt 255 maint/gnulib/lib/hamt.h extern bool hamt_remove_x (Hamt *hamt, Hamt_entry *elt); hamt 93 maint/gnulib/tests/test-hamt.c Hamt *hamt = test_hamt_create (); hamt 97 maint/gnulib/tests/test-hamt.c Hamt *hamt1 = hamt_insert (hamt, &p); hamt 98 maint/gnulib/tests/test-hamt.c ASSERT (hamt1 != hamt); hamt 99 maint/gnulib/tests/test-hamt.c ASSERT (hamt_lookup (hamt, x5) == NULL); hamt 101 maint/gnulib/tests/test-hamt.c hamt_free (hamt); hamt 111 maint/gnulib/tests/test-hamt.c hamt = hamt_replace (hamt1, &p); hamt 113 maint/gnulib/tests/test-hamt.c ASSERT (hamt_lookup (hamt, y5) == y5); hamt 114 maint/gnulib/tests/test-hamt.c hamt_free (hamt); hamt 173 maint/gnulib/tests/test-hamt.c element_count (Hamt *hamt) hamt 175 maint/gnulib/tests/test-hamt.c return hamt_do_while (hamt, true_processor, NULL); hamt 200 maint/gnulib/tests/test-hamt.c find_values (Hamt *hamt, size_t n, int *elts) hamt 204 maint/gnulib/tests/test-hamt.c bool res = hamt_do_while (hamt, find_values_processor, &ctx) == n; hamt 210 maint/gnulib/tests/test-hamt.c insert_values (Hamt **hamt, size_t n, int *elts, bool destructive) hamt 219 maint/gnulib/tests/test-hamt.c if (hamt_insert_x (*hamt, &p)) hamt 226 maint/gnulib/tests/test-hamt.c Hamt *new_hamt = hamt_insert (*hamt, &p); hamt 227 maint/gnulib/tests/test-hamt.c if (new_hamt != *hamt) hamt 229 maint/gnulib/tests/test-hamt.c hamt_free (*hamt); hamt 230 maint/gnulib/tests/test-hamt.c *hamt = new_hamt; hamt 243 maint/gnulib/tests/test-hamt.c replace_values (Hamt **hamt, size_t n, int *elts, bool destructive) hamt 251 maint/gnulib/tests/test-hamt.c if (hamt_replace_x (*hamt, p)) hamt 256 maint/gnulib/tests/test-hamt.c Hamt *new_hamt = hamt_replace (*hamt, &p); hamt 257 maint/gnulib/tests/test-hamt.c hamt_free (*hamt); hamt 258 maint/gnulib/tests/test-hamt.c *hamt = new_hamt; hamt 267 maint/gnulib/tests/test-hamt.c remove_values (Hamt **hamt, size_t n, int *elts, bool destructive) hamt 276 maint/gnulib/tests/test-hamt.c if (hamt_remove_x (*hamt, p)) hamt 281 maint/gnulib/tests/test-hamt.c Hamt *new_hamt = hamt_remove (*hamt, &p); hamt 282 maint/gnulib/tests/test-hamt.c if (new_hamt != *hamt) hamt 284 maint/gnulib/tests/test-hamt.c hamt_free (*hamt); hamt 285 maint/gnulib/tests/test-hamt.c *hamt = new_hamt; hamt 301 maint/gnulib/tests/test-hamt.c Hamt *hamt = test_hamt_create (); hamt 303 maint/gnulib/tests/test-hamt.c ASSERT (insert_values (&hamt, 10, val_array1, false) == 10); hamt 304 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 10); hamt 305 maint/gnulib/tests/test-hamt.c ASSERT (find_values (hamt, 10, val_array1)); hamt 306 maint/gnulib/tests/test-hamt.c ASSERT (insert_values (&hamt, 10, val_array2, false) == 5); hamt 307 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 15); hamt 308 maint/gnulib/tests/test-hamt.c ASSERT (remove_values (&hamt, 10, val_array1, false) == 10); hamt 309 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 5); hamt 310 maint/gnulib/tests/test-hamt.c ASSERT (remove_values (&hamt, 10, val_array2, false) == 5); hamt 311 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 0); hamt 313 maint/gnulib/tests/test-hamt.c ASSERT (replace_values (&hamt, 10, val_array1, false) == 0); hamt 314 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 10); hamt 315 maint/gnulib/tests/test-hamt.c ASSERT (find_values (hamt, 10, val_array1)); hamt 316 maint/gnulib/tests/test-hamt.c ASSERT (replace_values (&hamt, 10, val_array2, false) == 5); hamt 317 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 15); hamt 319 maint/gnulib/tests/test-hamt.c hamt_free (hamt); hamt 325 maint/gnulib/tests/test-hamt.c Hamt *hamt = test_hamt_create (); hamt 327 maint/gnulib/tests/test-hamt.c ASSERT (insert_values (&hamt, 10, val_array1, true) == 10); hamt 328 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 10); hamt 329 maint/gnulib/tests/test-hamt.c ASSERT (find_values (hamt, 10, val_array1)); hamt 330 maint/gnulib/tests/test-hamt.c ASSERT (insert_values (&hamt, 10, val_array2, true) == 5); hamt 331 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 15); hamt 332 maint/gnulib/tests/test-hamt.c ASSERT (remove_values (&hamt, 10, val_array1, true) == 10); hamt 333 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 5); hamt 334 maint/gnulib/tests/test-hamt.c ASSERT (remove_values (&hamt, 10, val_array2, true) == 5); hamt 335 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 0); hamt 337 maint/gnulib/tests/test-hamt.c ASSERT (replace_values (&hamt, 10, val_array1, true) == 0); hamt 338 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 10); hamt 339 maint/gnulib/tests/test-hamt.c ASSERT (find_values (hamt, 10, val_array1)); hamt 340 maint/gnulib/tests/test-hamt.c ASSERT (replace_values (&hamt, 10, val_array2, true) == 5); hamt 341 maint/gnulib/tests/test-hamt.c ASSERT (element_count (hamt) == 15); hamt 343 maint/gnulib/tests/test-hamt.c hamt_free (hamt); hamt 349 maint/gnulib/tests/test-hamt.c Hamt *hamt = test_hamt_create (); hamt 350 maint/gnulib/tests/test-hamt.c ASSERT (insert_values (&hamt, 10, val_array1, true) == 10); hamt 351 maint/gnulib/tests/test-hamt.c Hamt_iterator iter [1] = {hamt_iterator (hamt)}; hamt 368 maint/gnulib/tests/test-hamt.c hamt_free (hamt);