diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-07 19:03:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-07 19:03:30 +0300 |
commit | db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1 (patch) | |
tree | 034477d68499514300b2b5787ed63a815c616b98 /src/parsers/generic.cpp | |
parent | a2b5d4b53004059405c8e1c8bc957a084a3fc112 (diff) | |
download | paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.gz paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.bz2 paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.xz paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.zip |
Remove all created nodes before exit from root node parsing.
Diffstat (limited to 'src/parsers/generic.cpp')
-rw-r--r-- | src/parsers/generic.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp index c2b02ca..ed00197 100644 --- a/src/parsers/generic.cpp +++ b/src/parsers/generic.cpp @@ -118,9 +118,18 @@ Node *createParseNode(Node *parent, return node; } -void parseNodes(tree gccNode) +Node *parseNodes(tree gccNode) { - createParseNode(nullptr, gccNode, FUNCTION_DECL); + return createParseNode(nullptr, gccNode, FUNCTION_DECL); +} + +void cleanNodes(Node *node) +{ + FOR_EACH (std::vector<Node*>::iterator, it, node->childs) + { + cleanNodes(*it); + } + delete node; } void fillType(Node *node) |