diff options
Diffstat (limited to 'src/entry.cpp')
-rw-r--r-- | src/entry.cpp | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/src/entry.cpp b/src/entry.cpp index 01c9742..cf3634b 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -81,8 +81,7 @@ Entry::Entry(const Entry &e) virt = e.virt; args = e.args; bitfields = e.bitfields; - argList = new ArgumentList; - argList->setAutoDelete(TRUE); + argList = e.argList->deepCopy(); tArgLists = 0; program = e.program; initializer = e.initializer; @@ -169,27 +168,10 @@ Entry::Entry(const Entry &e) anchors->append(new SectionInfo(*s)); } - // deep copy argument list - QListIterator<Argument> ali(*e.argList); - Argument *a; - for (;(a=ali.current());++ali) - { - argList->append(new Argument(*a)); - } - argList->constSpecifier = e.argList->constSpecifier; - argList->volatileSpecifier = e.argList->volatileSpecifier; - argList->pureSpecifier = e.argList->pureSpecifier; - // deep copy type contraint list if (e.typeConstr) { - typeConstr = new ArgumentList; - typeConstr->setAutoDelete(TRUE); - QListIterator<Argument> tcli(*e.typeConstr); - for (;(a=tcli.current());++tcli) - { - typeConstr->append(new Argument(*a)); - } + typeConstr = e.typeConstr->deepCopy(); } // deep copy template argument lists |