BTree::BTree (const std::string &name)
{
+ /* Leo los bloques recuperables */
+ std::string del = filename + ".del";
+
+ fp = fopen (del.c_str (), "wb");
+ if (fp != NULL) {
+ uint i;
+
+ while (fread (&i, 1, sizeof (uint), fp)) {
+ deleted_nodes.push_back (i);
+ }
+
+ fclose (fp);
+ }
+
fp = fopen (name.c_str(), "rb+");
if (!fp) {
/* TODO : mandar una exception ? */
BTreeNodeHeader nh;
std::list<uint>::iterator it;
- it = deleted_nodes.begin ();
- if (it != deleted_nodes.end ()) {
+ if (deleted_nodes.size ()) {
+ it = deleted_nodes.begin ();
num = *it;
deleted_nodes.erase (it);
} else {