struct cursor *alloc_cursor(struct btree *btree, int extra) { int maxlevel = btree->root.depth + 1 + extra; struct cursor *cursor = malloc(alloc_cursor_size(maxlevel)); if (cursor) { cursor->btree = btree; cursor->len = 0; #ifdef CURSOR_DEBUG cursor->maxlen = maxlevel; for (int i = 0; i < maxlevel; i++) { cursor->path[i].buffer = FREE_BUFFER; /* for debug */ cursor->path[i].next = FREE_NEXT; /* for debug */ } #endif } return cursor; }
struct cursor *alloc_cursor(struct btree *btree, int extra) { if(DEBUG_MODE_K==1) { printf("\t\t\t\t%25s[K] %25s %4d #in\n",__FILE__,__func__,__LINE__); } int maxlevel = btree->root.depth + extra; struct cursor *cursor = malloc(alloc_cursor_size(maxlevel + 1)); if (cursor) { cursor->btree = btree; cursor->level = -1; #ifdef CURSOR_DEBUG cursor->maxlevel = maxlevel; for (int i = 0; i <= maxlevel; i++) { cursor->path[i].buffer = FREE_BUFFER; /* for debug */ cursor->path[i].next = FREE_NEXT; /* for debug */ } #endif } return cursor; }