diff --git a/btree.cpp b/btree.cpp index 8635805..b2af444 100644 --- a/btree.cpp +++ b/btree.cpp @@ -1,4 +1,5 @@ #include +#include #include "btree.h" bool @@ -35,6 +36,17 @@ return size; } // bTree::calcSize +uPtr +bTree::getFirstDeleted(void) { + + if (!memoryTree) { + if (!vfs->fSeek((int)&info->firstDeleted- (int)info)) exit(42); + if (!vfs->fRead(&info->firstDeleted, sizeof(info->firstDeleted))) exit(42); + } // if not memoryTree + + return info->firstDeleted; +} // bTree::getFirstDeleted + void bTree::setNull(uPtr & u) { u.offset = 0; diff --git a/btree.h b/btree.h index 371be63..52bb712 100644 --- a/btree.h +++ b/btree.h @@ -10,13 +10,14 @@ compareKeyFunc compareKey; copyKeyProc copyKey; keySizeFunc keySize; - bTreeInfo * info; - bTreeVFS * vfs; + bTreeInfo * info; + bTreeVFS * vfs; bool memoryTree; bool treeChanged; int align(int); int calcSize(TbNode *); + uPtr getFirstDeleted(void); void setNull(uPtr &); public: bTree(char *, uInt32, treeTypes, bTreeVFS *);