summaryrefslogtreecommitdiffstats
path: root/src/entry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/entry.cpp')
-rw-r--r--src/entry.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/entry.cpp b/src/entry.cpp
index 2520fa3..51724ce 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -29,6 +29,8 @@ Entry::Entry()
extends->setAutoDelete(TRUE);
groups = new QList<QString>;
groups->setAutoDelete(TRUE);
+ anchors = new QList<QString>;
+ anchors->setAutoDelete(TRUE);
argList = new ArgumentList;
argList->setAutoDelete(TRUE);
//printf("Entry::Entry() tArgList=0\n");
@@ -66,6 +68,8 @@ Entry::Entry(const Entry &e)
extends->setAutoDelete(TRUE);
groups = new QList<QString>;
groups->setAutoDelete(TRUE);
+ anchors = new QList<QString>;
+ anchors->setAutoDelete(TRUE);
argList = new ArgumentList;
argList->setAutoDelete(TRUE);
//printf("Entry::Entry(copy) tArgList=0\n");
@@ -94,6 +98,12 @@ Entry::Entry(const Entry &e)
{
groups->append(new QString(*s));
}
+
+ QListIterator<QString> sli2(*e.anchors);
+ for (;(s=sli2.current());++sli2)
+ {
+ anchors->append(new QString(*s));
+ }
// deep copy argument list
QListIterator<Argument> ali(*e.argList);
@@ -128,6 +138,7 @@ Entry::~Entry()
delete sublist;
delete extends;
delete groups;
+ delete anchors;
delete argList;
//printf("Entry::~Entry() tArgList=%p\n",tArgList);
delete tArgList;
@@ -177,6 +188,7 @@ void Entry::reset()
sublist->clear();
extends->clear();
groups->clear();
+ anchors->clear();
argList->clear();
if (tArgList) { delete tArgList; tArgList=0; }
}
@@ -211,6 +223,13 @@ int Entry::getSize()
size+=s->length()+1;
s=groups->next();
}
+ s=anchors->first();
+ while (s)
+ {
+ size+=sizeof(QLNode);
+ size+=s->length()+1;
+ s=anchors->next();
+ }
Entry *e=sublist->first();
while (e)
{