diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-01-21 01:08:32 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-01-21 01:08:32 -0500 |
commit | 8a449369b50db65423d709000891fec25d9dba54 (patch) | |
tree | 33c4c7897f679d095127ed1946e15095d4389c43 | |
parent | 4a00c3d74cd2d0d9905224b8f781dcb8d2ff3f1e (diff) |
Oops I shouldn't have erased names directly.
We always need to remove the index map when removing a name.
-rw-r--r-- | sc/inc/rangenam.hxx | 1 | ||||
-rw-r--r-- | sc/source/core/tool/rangenam.cxx | 9 |
2 files changed, 8 insertions, 2 deletions
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index ce0e2082e999..53e9ec8f0a8a 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -230,6 +230,7 @@ public: SC_DLLPUBLIC bool insert(ScRangeData* p); void erase(const ScRangeData& r); + void erase(const rtl::OUString& rName); /** * Erase by iterator position. Note that this method doesn't check for diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index 214c17b06f80..ed8b5d35a85a 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -894,7 +894,7 @@ bool ScRangeName::insert(ScRangeData* p) } rtl::OUString aName(p->GetUpperName()); - maData.erase(aName); // ptr_map won't insert it if a duplicate name exists. + erase(aName); // ptr_map won't insert it if a duplicate name exists. pair<DataType::iterator, bool> r = maData.insert(aName, p); if (r.second) { @@ -909,7 +909,12 @@ bool ScRangeName::insert(ScRangeData* p) void ScRangeName::erase(const ScRangeData& r) { - DataType::iterator itr = maData.find(r.GetUpperName()); + erase(r.GetUpperName()); +} + +void ScRangeName::erase(const rtl::OUString& rName) +{ + DataType::iterator itr = maData.find(rName); if (itr != maData.end()) erase(itr); } |