]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree_data.cpp
Agrego emision de excepsiones en caso de error.
[z.facultad/75.52/treemulator.git] / src / btree_data.cpp
index bc0ce93c08882c4dd107b515429fddb497e151a4..70195fdb41e9650fda39faa413e30e883962cde8 100644 (file)
@@ -24,8 +24,10 @@ BTreeData::BTreeData (Clave *k, uint child)
 
 BTreeData::~BTreeData ()
 {
 
 BTreeData::~BTreeData ()
 {
-       if (clave)
+       if (clave) {
                delete clave;
                delete clave;
+               clave = NULL;
+       }
 }
 
 uint BTreeData::Size () const
 }
 
 uint BTreeData::Size () const
@@ -63,6 +65,22 @@ bool BTreeData::operator == (const BTreeData &data) const
        return (*clave) == (*(data.clave));
 }
 
        return (*clave) == (*(data.clave));
 }
 
+bool BTreeData::Abrev (BTreeData *anterior)
+{
+       if (anterior == NULL) return false;
+
+       ClaveVariable *c = (ClaveVariable *)clave;
+       return c->Abrev (dynamic_cast<ClaveVariable *>(anterior->GetKey ()));
+}
+
+bool BTreeData::DesAbrev (BTreeData *anterior)
+{
+       if (anterior == NULL) return false;
+
+       ClaveVariable *c = (ClaveVariable *)clave;
+       return c->DesAbrev (dynamic_cast<ClaveVariable *>(anterior->GetKey ()));
+}
+
 BTreeLeafData::BTreeLeafData (uchar *node, int key_type)
 {
        if (key_type == BTree::KEY_FIXED)
 BTreeLeafData::BTreeLeafData (uchar *node, int key_type)
 {
        if (key_type == BTree::KEY_FIXED)
@@ -73,6 +91,10 @@ BTreeLeafData::BTreeLeafData (uchar *node, int key_type)
 
 BTreeLeafData::~BTreeLeafData ()
 {
 
 BTreeLeafData::~BTreeLeafData ()
 {
+       if (clave) {
+               delete clave; 
+               clave = NULL;
+       }
 }
 
 uint BTreeLeafData::Size () const
 }
 
 uint BTreeLeafData::Size () const