diff --git a/src/sys/ubixfsv2/btree.h b/src/sys/ubixfsv2/btree.h index 7a05100..0b5d71a 100644 --- a/src/sys/ubixfsv2/btree.h +++ b/src/sys/ubixfsv2/btree.h @@ -62,5 +62,6 @@ void PrintWholeTree(void); bool Verify(void); ~bTree(void); + friend class UbixFS; }; // bTree #endif // !BTREE_H diff --git a/src/sys/ubixfsv2/btreeheader.h b/src/sys/ubixfsv2/btreeheader.h index e1e4bb8..be72012 100644 --- a/src/sys/ubixfsv2/btreeheader.h +++ b/src/sys/ubixfsv2/btreeheader.h @@ -7,6 +7,7 @@ uInt32 treeLeafCount; off_t firstNodeOffset; // used when tree is on disk off_t firstDeleted; // used to point to an empty node + char paddington[4068]; } bTreeHeader; // bTreeHeader #endif /* !BTREEHEADER_H */ diff --git a/src/sys/ubixfsv2/main.cpp b/src/sys/ubixfsv2/main.cpp index 34d2436..294254e 100644 --- a/src/sys/ubixfsv2/main.cpp +++ b/src/sys/ubixfsv2/main.cpp @@ -58,5 +58,6 @@ cout << "sizeof(bNode): " << sizeof(struct bNode) << endl; cout << "sizeof(ubixfsInode): " << sizeof(struct ubixfsInode) << endl; cout << "sizeof(diskSuperBlock): " << sizeof(struct diskSuperBlock) << endl; + cout << "sizeof(bTreeHeader): " << sizeof(struct bTreeHeader) << endl; return 0; } diff --git a/src/sys/ubixfsv2/ubixfs.cpp b/src/sys/ubixfsv2/ubixfs.cpp index 13e8ddc..04d5c89 100644 --- a/src/sys/ubixfsv2/ubixfs.cpp +++ b/src/sys/ubixfsv2/ubixfs.cpp @@ -375,7 +375,7 @@ assert(sb->blockSize); assert((unsigned)sb->blockSize >= sizeof(bTreeHeader)); cout << "allocating bTree header" << endl; - bTreeHeader * bth = (bTreeHeader *)malloc(sb->blockSize); + bTreeHeader * bth = new bTreeHeader; assert(bth); memset(bth, 0, sb->blockSize); bth->firstDeleted = bth->firstNodeOffset = -1; diff --git a/src/sys/ubixfsv2/ubixfs.h b/src/sys/ubixfsv2/ubixfs.h index 0c8d989..9fb5881 100644 --- a/src/sys/ubixfsv2/ubixfs.h +++ b/src/sys/ubixfsv2/ubixfs.h @@ -144,6 +144,7 @@ virtual int vfs_format(device_t *); virtual void * vfs_mknod(const char *, mode_t); virtual ~UbixFS(void); + friend class bTree; }; // UbixFS #endif // !UBIXFS_H