summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-30 21:06:10 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-30 21:06:10 +0300
commitf161ad8300a76df40608dd28f0bb75e4b662ffaa (patch)
tree96e6792c8e59ce95923e2480da3d9137cd902366 /src/analysis/analysis.cpp
parent1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6 (diff)
downloadparanucker-f161ad8300a76df40608dd28f0bb75e4b662ffaa.tar.gz
paranucker-f161ad8300a76df40608dd28f0bb75e4b662ffaa.tar.bz2
paranucker-f161ad8300a76df40608dd28f0bb75e4b662ffaa.tar.xz
paranucker-f161ad8300a76df40608dd28f0bb75e4b662ffaa.zip
Improve copy walk flags to child nodes.
Diffstat (limited to 'src/analysis/analysis.cpp')
-rw-r--r--src/analysis/analysis.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index 172917c..1fcf211 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -153,21 +153,21 @@ void walkTree(Node *node, const WalkItem &wi, WalkItem &wo)
WalkItem wi2 = wi;
// analyse node and after copy all properties from wo to wi2
analyseNode(node, wi2, wo);
- removeNeedCheckNullVarsSet(wi2, wi2.removeNullVars);
addNeedCheckNullVars(wo, wo);
addNeedCheckNullVars(wo, wi2);
- addNeedCheckNullVars(wi2, wi2);
- wi2.linkedVars = wo.linkedVars;
- wi2.linkedReverseVars = wo.linkedReverseVars;
- wi2.addNullVars = wo.addNullVars;
-
- const bool isReturned = wo.isReturned;
if (wo.stopWalking)
{
wo.stopWalking = false;
return;
}
+ wi2 = wo;
+
+ addNeedCheckNullVars(wi2, wi2);
+ removeNeedCheckNullVarsSet(wi2, wi2.removeNullVars);
+
+ const bool isReturned = wo.isReturned;
+
WalkItem wo2 = wo;
if (command != Command::DumpNullPointers)
Log::dumpWI(node, "walkTree 2 wo2 ", wo2);