diff --git a/src/sys/ubixfsv2/btree.cpp b/src/sys/ubixfsv2/btree.cpp index 26fa3a1..b6b99a6 100644 --- a/src/sys/ubixfsv2/btree.cpp +++ b/src/sys/ubixfsv2/btree.cpp @@ -584,108 +584,6 @@ return NULL; } // bTree::findLeafNode -bool -bTree::insertInodeIntoLeaf(bNode * leaf, ubixfsInode * inode) { - unsigned int curSlot; - ubixfsInode * tmpInode = NULL; - assert(leaf); - assert(inode); - assert(leaf->leaf); - assert(leaf->used < B_MAX_KEYS); - - if (strcmp(inode->name, leaf->keys[curSlot = 0]) < 0) - tmpInode = (ubixfsInode *)leaf->head[curSlot]; - else - if (strcmp(inode->name, leaf->keys[(curSlot = leaf->used)-1]) >= 0) - tmpInode = (ubixfsInode *)leaf->head[leaf->used]; - else { - for (curSlot = 1; curSlot < leaf->used; curSlot++) { - if (strcmp(inode->name, leaf->keys[curSlot]) < 0) { - tmpInode = (ubixfsInode *)leaf->head[curSlot]; - break; - } // if - } // for curSlot - tmpInode = (ubixfsInode *)leaf->head[curSlot]; - } // else - - if (tmpInode == NULL) { - /* - * This is the first node in this leaf - */ - leaf->head[curSlot] = leaf->tail[curSlot] = inode; - leaf->present[curSlot] = true; - - if (curSlot == 0) { - if (leaf->head[1] != NULL) { - ubixfsInode * iptr = (ubixfsInode *)leaf->head[1]; - inode->prev = iptr->prev; - inode->next = iptr; - iptr->prev = inode; - if (inode->prev != NULL) inode->prev->next = inode; - } else { - inode->next = inode->prev = NULL; - } // else - - } else { - ++leaf->used; - } // else - } else { - /* - * Add node to leaf page. Scan through to find where it goes. - */ - - if (strcmp(inode->name, ((ubixfsInode *)leaf->head[curSlot])->name) < 0) { - - inode->next = (ubixfsInode *)leaf->head[curSlot]; - inode->prev = inode->next->prev; - inode->next->prev = inode; - if (inode->prev != NULL) inode->prev->next = inode; - leaf->head[curSlot] = (void *)inode; - - } else { - - if (strcmp(inode->name, ((ubixfsInode *)leaf->tail[curSlot])->name) > 0) -{ - inode->prev = (ubixfsInode *)leaf->tail[curSlot]; - inode->next = inode->prev->next; - inode->prev->next = inode; - - if (inode->next != NULL) inode->next->prev = inode; - leaf->tail[curSlot] = inode; - - } else { - ubixfsInode * tmpInode = (ubixfsInode *)leaf->head[curSlot]; - for (unsigned int i = 0; i < leaf->childCount[curSlot]; i++) { - if (strcmp(inode->name, tmpInode->name) < 0) { - inode->next = tmpInode; - inode->prev = tmpInode->prev; - inode->next->prev = inode; - inode->prev->next = inode; - break; - } // if - tmpInode = tmpInode->next; - } // for i - } // else - } // else - ++leaf->used; - ++leaf->childCount[curSlot]; - } // else - - return true; -} // bTree::insertInodeIntoLeaf - -bool -bTree::ins(ubixfsInode * inode) { - assert(inode); - bNode * node = findLeafNode(root, inode->name); - assert(node); - if (node->used < B_MAX_KEYS) { - - } - ++node->used; - return true; -} - bool bTree::Save(const char * filename) { if (filename == NULL) return false; @@ -712,7 +610,7 @@ while (node != NULL) { if (node->next != NULL) { -// cout << node->name << "::" << node->next->name << ":::" << strcmp(node->name, node->next->name) << endl; + // cout << node->name << "::" << node->next->name << ":::" << strcmp(node->name, node->next->name) << endl; if (strcmp(node->name, node->next->name) > 0) return false; } node = node->next; diff --git a/src/sys/ubixfsv2/btree.h b/src/sys/ubixfsv2/btree.h index 82bea8e..ce78c4c 100644 --- a/src/sys/ubixfsv2/btree.h +++ b/src/sys/ubixfsv2/btree.h @@ -37,7 +37,6 @@ bNode * allocEmptyNode(void); void insertNode(bNode *, const char *, void *, void *); bNode * findLeafNode(bNode *, const char *); - bool insertInodeIntoLeaf(bNode *, ubixfsInode *); void Print(bNode *); public: bTree(ubixfsInode *); @@ -49,7 +48,6 @@ void Info(void); void Info(const bNode *); bool Insert(ubixfsInode *); - bool ins(ubixfsInode *); bool Save(const char *); bool Load(const char *); void Print(void); diff --git a/src/sys/ubixfsv2/main.cpp b/src/sys/ubixfsv2/main.cpp index 115cecc..16cdda5 100644 --- a/src/sys/ubixfsv2/main.cpp +++ b/src/sys/ubixfsv2/main.cpp @@ -10,14 +10,13 @@ int main(void) { - int a = 0,aa = 0,aaa = 0; int i = 0; ubixfsInode * inode = (ubixfsInode *)malloc(sizeof(ubixfsInode)); memset(inode, 0, sizeof(ubixfsInode)); strcpy(inode -> name, "50"); bTree * tree = new bTree(inode); - for (i = 0; i < 250000; i++) { + for (i = 0; i < 3000; i++) { // while (tree->Verify()) { // if (i%1000 == 0) cout << "-_- i = "<