587
579
bool Unique::walk(tree_walk_action action, void *walk_action_arg)
592
584
if (elements == 0) /* the whole tree is in memory */
593
585
return tree_walk(&tree, action, walk_action_arg, left_root_right);
595
587
/* flush current tree to the file to have some memory for merge buffer */
598
591
if (flush_io_cache(file) || reinit_io_cache(file, internal::READ_CACHE, 0L, 0, 0))
602
res= merge_walk(merge_buffer, (ulong) max_in_memory_size, size,
603
res= merge_walk(&merge_buffer[0], (ulong) max_in_memory_size, size,
603
604
(BUFFPEK *) file_ptrs.buffer,
604
605
(BUFFPEK *) file_ptrs.buffer + file_ptrs.elements,
606
607
tree.compare, tree.custom_arg, file);