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:10:23 -0500 |
commit | de8d1f922acca8e0df5ecb016d27126124e2c3d1 (patch) | |
tree | 8788361136082e537e274b8fccce393e28335e6a /sc | |
parent | 657b3c889ae107d9ccaaab569929a3a1abde3200 (diff) |
Oops I shouldn't have erased names directly.
We always need to remove the index map when removing a name.
Diffstat (limited to 'sc')
-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 da92c7ca3dea..3de3b2298169 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); } |