src/tree.c

changeset 1429
6e0c3a8a914a
parent 1426
3a89b31f0724
equal deleted inserted replaced
1428:0ac4aa1737fd 1429:6e0c3a8a914a
373 iter.node_next = NULL; 373 iter.node_next = NULL;
374 iter.exiting = false; 374 iter.exiting = false;
375 iter.skip = false; 375 iter.skip = false;
376 376
377 // assign base iterator functions 377 // assign base iterator functions
378 iter.base.mutating = false; 378 iter.base.allow_remove = false;
379 iter.base.remove = false; 379 iter.base.remove = false;
380 iter.base.current_impl = NULL; 380 iter.base.current_impl = NULL;
381 iter.base.valid = cx_tree_iter_valid; 381 iter.base.valid = cx_tree_iter_valid;
382 iter.base.next = cx_tree_iter_next; 382 iter.base.next = cx_tree_iter_next;
383 iter.base.current = cx_tree_iter_current; 383 iter.base.current = cx_tree_iter_current;
494 iter.skip = false; 494 iter.skip = false;
495 iter.queue_next = NULL; 495 iter.queue_next = NULL;
496 iter.queue_last = NULL; 496 iter.queue_last = NULL;
497 497
498 // assign base iterator functions 498 // assign base iterator functions
499 iter.base.mutating = false; 499 iter.base.allow_remove = false;
500 iter.base.remove = false; 500 iter.base.remove = false;
501 iter.base.current_impl = NULL; 501 iter.base.current_impl = NULL;
502 iter.base.valid = cx_tree_visitor_valid; 502 iter.base.valid = cx_tree_visitor_valid;
503 iter.base.next = cx_tree_visitor_next; 503 iter.base.next = cx_tree_visitor_next;
504 iter.base.current = cx_tree_visitor_current; 504 iter.base.current = cx_tree_visitor_current;
715 return 0; 715 return 0;
716 } 716 }
717 } 717 }
718 718
719 // otherwise, create iterator and hand over to other function 719 // otherwise, create iterator and hand over to other function
720 CxIterator iter = cxIterator(src, elem_size, num); 720 CxIterator iter = cxIterator(src, elem_size, num, false);
721 return cx_tree_add_iter(cxIteratorRef(iter), num, sfunc, 721 return cx_tree_add_iter(cxIteratorRef(iter), num, sfunc,
722 cfunc, cdata, failed, root, 722 cfunc, cdata, failed, root,
723 loc_parent, loc_children, loc_last_child, 723 loc_parent, loc_children, loc_last_child,
724 loc_prev, loc_next); 724 loc_prev, loc_next);
725 } 725 }
909 } 909 }
910 910
911 size_t cxTreeInsertArray(CxTree *tree, const void *data, size_t elem_size, size_t n) { 911 size_t cxTreeInsertArray(CxTree *tree, const void *data, size_t elem_size, size_t n) {
912 if (n == 0) return 0; 912 if (n == 0) return 0;
913 if (n == 1) return 0 == cxTreeInsert(tree, data) ? 1 : 0; 913 if (n == 1) return 0 == cxTreeInsert(tree, data) ? 1 : 0;
914 CxIterator iter = cxIterator(data, elem_size, n); 914 CxIterator iter = cxIterator(data, elem_size, n, false);
915 return cxTreeInsertIter(tree, cxIteratorRef(iter), n); 915 return cxTreeInsertIter(tree, cxIteratorRef(iter), n);
916 } 916 }
917 917
918 void *cxTreeFind( CxTree *tree, const void *data) { 918 void *cxTreeFind( CxTree *tree, const void *data) {
919 return tree->cl->find(tree, tree->root, data, 0); 919 return tree->cl->find(tree, tree->root, data, 0);

mercurial