fix possible crash in PropertySheet when removing dependencies

This commit is contained in:
wmayer
2019-01-17 18:33:06 +01:00
parent 69a85806bc
commit 1444b64803

View File

@@ -102,7 +102,9 @@ void PropertySheet::clear()
mergedCells.clear();
propertyNameToCellMap.clear();
cellToPropertyNameMap.clear();
documentObjectToCellMap.clear();
cellToDocumentObjectMap.clear();
docDeps.clear();
aliasProp.clear();
revAliasProp.clear();
@@ -1023,9 +1025,9 @@ void PropertySheet::removeDependencies(CellAddress key)
while (j != i1->second.end()) {
std::map<std::string, std::set< CellAddress > >::iterator k = propertyNameToCellMap.find(*j);
assert(k != propertyNameToCellMap.end());
k->second.erase(key);
//assert(k != propertyNameToCellMap.end());
if (k != propertyNameToCellMap.end())
k->second.erase(key);
++j;
}
@@ -1042,12 +1044,13 @@ void PropertySheet::removeDependencies(CellAddress key)
while (j != i2->second.end()) {
std::map<std::string, std::set< CellAddress > >::iterator k = documentObjectToCellMap.find(*j);
assert(k != documentObjectToCellMap.end());
//assert(k != documentObjectToCellMap.end());
if (k != documentObjectToCellMap.end()) {
k->second.erase(key);
k->second.erase(key);
if (k->second.size() == 0)
documentObjectToCellMap.erase(*j);
if (k->second.size() == 0)
documentObjectToCellMap.erase(*j);
}
++j;
}