summaryrefslogtreecommitdiff
path: root/src/analysis/collections.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/collections.cpp')
-rw-r--r--src/analysis/collections.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/analysis/collections.cpp b/src/analysis/collections.cpp
index a475acc..0f3a8f8 100644
--- a/src/analysis/collections.cpp
+++ b/src/analysis/collections.cpp
@@ -35,6 +35,28 @@ void addNeedCheckNullVars(WalkItem &wi, WalkItem &wo)
{
wo.needCheckNullVars.insert(it);
wo.knownVars.insert(it);
+/*
+ wo.knownNonNullVars.erase(it);
+ wo.knownNullVars.erase(it);
+ wo.removeNullVars.erase(it);
+ wo.removeNullVarsAll.erase(it);
+ wo.addNullVars.insert(it);
+*/
+ }
+}
+
+// add variables null pointer checks
+void addNeedCheckNullVars2(WalkItem &wi, WalkItem &wo)
+{
+ FOR_EACH (it, wi.addNullVars)
+ {
+ wo.needCheckNullVars.insert(it);
+ wo.knownVars.insert(it);
+ wo.knownNonNullVars.erase(it);
+ wo.knownNullVars.erase(it);
+ wo.removeNullVars.erase(it);
+ wo.removeNullVarsAll.erase(it);
+ wo.addNullVars.insert(it);
}
}
@@ -362,4 +384,12 @@ void removeVar(WalkItem &wi, const std::string &var)
removeNeedCheckNullVarOnly(wi, var);
}
+void enforceNeedCheckNullVars(WalkItem &wi)
+{
+ FOR_EACH (it, wi.needCheckNullVars)
+ {
+ wi.removeNullVars.erase(it);
+ }
+}
+
}