]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree_data.cpp
Paso el block_data a BTree en lugar de Clave.
[z.facultad/75.52/treemulator.git] / src / btree_data.cpp
index bf92909969aedf7630105ac8c91fc9db61b52661..1adeb8303d18aec14e4a01b4679126e5bdd17279 100644 (file)
@@ -24,8 +24,10 @@ BTreeData::BTreeData (Clave *k, uint child)
 
 BTreeData::~BTreeData ()
 {
-       if (clave)
+       if (clave) {
                delete clave;
+               clave = NULL;
+       }
 }
 
 uint BTreeData::Size () const
@@ -68,7 +70,7 @@ bool BTreeData::Abrev (BTreeData *anterior)
        if (anterior == NULL) return false;
 
        ClaveVariable *c = (ClaveVariable *)clave;
-       return c->Abrev (dynamic_cast<ClaveVariable *>(anterior->getClave ()));
+       return c->Abrev (dynamic_cast<ClaveVariable *>(anterior->GetKey ()));
 }
 
 bool BTreeData::DesAbrev (BTreeData *anterior)
@@ -76,11 +78,12 @@ bool BTreeData::DesAbrev (BTreeData *anterior)
        if (anterior == NULL) return false;
 
        ClaveVariable *c = (ClaveVariable *)clave;
-       return c->DesAbrev (dynamic_cast<ClaveVariable *>(anterior->getClave ()));
+       return c->DesAbrev (dynamic_cast<ClaveVariable *>(anterior->GetKey ()));
 }
 
 BTreeLeafData::BTreeLeafData (uchar *node, int key_type)
 {
+       hijo = 0;       
        if (key_type == BTree::KEY_FIXED)
                clave = new ClaveFija (node);
        else
@@ -89,6 +92,10 @@ BTreeLeafData::BTreeLeafData (uchar *node, int key_type)
 
 BTreeLeafData::~BTreeLeafData ()
 {
+       if (clave) {
+               delete clave; 
+               clave = NULL;
+       }
 }
 
 uint BTreeLeafData::Size () const
@@ -108,6 +115,7 @@ uchar* BTreeLeafData::ToArray () const
 BTreeChildData::BTreeChildData (uchar *node)
 {
        memcpy (&hijo, node, sizeof (uint));
+       clave = NULL;
 }
 
 BTreeChildData::~BTreeChildData ()
@@ -126,3 +134,7 @@ uchar* BTreeChildData::ToArray () const
        return out;
 }
 
+bool BTreeChildData::operator < (const BTreeData &data) const
+{
+       return false;
+}