X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/6a4238b2894a1cf20a5b8ccb0575f018ae25a5b3..f0a17b3d23f3f277957d3e97ac1c7c1869d6d4cc:/src/btree_data.cpp diff --git a/src/btree_data.cpp b/src/btree_data.cpp index bc0ce93..70195fd 100644 --- a/src/btree_data.cpp +++ b/src/btree_data.cpp @@ -24,8 +24,10 @@ BTreeData::BTreeData (Clave *k, uint child) BTreeData::~BTreeData () { - if (clave) + if (clave) { delete clave; + clave = NULL; + } } uint BTreeData::Size () const @@ -63,6 +65,22 @@ bool BTreeData::operator == (const BTreeData &data) const return (*clave) == (*(data.clave)); } +bool BTreeData::Abrev (BTreeData *anterior) +{ + if (anterior == NULL) return false; + + ClaveVariable *c = (ClaveVariable *)clave; + return c->Abrev (dynamic_cast(anterior->GetKey ())); +} + +bool BTreeData::DesAbrev (BTreeData *anterior) +{ + if (anterior == NULL) return false; + + ClaveVariable *c = (ClaveVariable *)clave; + return c->DesAbrev (dynamic_cast(anterior->GetKey ())); +} + 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 () { + if (clave) { + delete clave; + clave = NULL; + } } uint BTreeLeafData::Size () const