| 806 ptrdiff_t loc_children, |
806 ptrdiff_t loc_children, |
| 807 ptrdiff_t loc_last_child, |
807 ptrdiff_t loc_last_child, |
| 808 ptrdiff_t loc_prev, |
808 ptrdiff_t loc_prev, |
| 809 ptrdiff_t loc_next |
809 ptrdiff_t loc_next |
| 810 ) { |
810 ) { |
| |
811 if (allocator == NULL) { |
| |
812 allocator = cxDefaultAllocator; |
| |
813 } |
| |
814 assert(create_func != NULL); |
| |
815 assert(search_func != NULL); |
| |
816 assert(search_data_func != NULL); |
| |
817 |
| 811 CxTree *tree = cxMalloc(allocator, sizeof(CxTree)); |
818 CxTree *tree = cxMalloc(allocator, sizeof(CxTree)); |
| 812 if (tree == NULL) return NULL; |
819 if (tree == NULL) return NULL; |
| 813 |
820 |
| 814 tree->cl = &cx_tree_default_class; |
821 tree->cl = &cx_tree_default_class; |
| 815 tree->allocator = allocator; |
822 tree->allocator = allocator; |
| 837 ptrdiff_t loc_children, |
844 ptrdiff_t loc_children, |
| 838 ptrdiff_t loc_last_child, |
845 ptrdiff_t loc_last_child, |
| 839 ptrdiff_t loc_prev, |
846 ptrdiff_t loc_prev, |
| 840 ptrdiff_t loc_next |
847 ptrdiff_t loc_next |
| 841 ) { |
848 ) { |
| |
849 if (allocator == NULL) { |
| |
850 allocator = cxDefaultAllocator; |
| |
851 } |
| |
852 assert(root != NULL); |
| |
853 |
| 842 CxTree *tree = cxMalloc(allocator, sizeof(CxTree)); |
854 CxTree *tree = cxMalloc(allocator, sizeof(CxTree)); |
| 843 if (tree == NULL) return NULL; |
855 if (tree == NULL) return NULL; |
| 844 |
856 |
| 845 tree->cl = &cx_tree_default_class; |
857 tree->cl = &cx_tree_default_class; |
| 846 // set the allocator anyway, just in case... |
858 // set the allocator anyway, just in case... |