diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-22 14:03:16 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-22 14:03:16 +0300 |
commit | e4cc6e7e74e103bef8b50e272bc82d87ce9c8d35 (patch) | |
tree | 8a4da667af5ddf0f4b9ce2617ef598f35c34b595 /src | |
parent | 77d5fb6fbf6553fa4a62be9e90337394a147f856 (diff) | |
download | paranucker-e4cc6e7e74e103bef8b50e272bc82d87ce9c8d35.tar.gz paranucker-e4cc6e7e74e103bef8b50e272bc82d87ce9c8d35.tar.bz2 paranucker-e4cc6e7e74e103bef8b50e272bc82d87ce9c8d35.tar.xz paranucker-e4cc6e7e74e103bef8b50e272bc82d87ce9c8d35.zip |
Fix memory corruption on removing linked variables.
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/collections.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/analysis/collections.cpp b/src/analysis/collections.cpp index def9573..9bdcee8 100644 --- a/src/analysis/collections.cpp +++ b/src/analysis/collections.cpp @@ -151,6 +151,11 @@ void removeLinkVarOnly(WalkItem &wi, const std::string &var) if (it2 != wi.linkedVars.end()) { const StringSet linked = (*it2).second; + if (linked.empty()) + { + wi.linkedVars.erase(var); + return; + } std::string newParent = *(linked.begin()); wi.linkedReverseVars.erase(newParent); wi.linkedVars[newParent] = linked; |