summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2012-01-21 01:08:32 -0500
committerKohei Yoshida <kohei.yoshida@suse.com>2012-01-21 01:08:32 -0500
commit8a449369b50db65423d709000891fec25d9dba54 (patch)
tree33c4c7897f679d095127ed1946e15095d4389c43
parent4a00c3d74cd2d0d9905224b8f781dcb8d2ff3f1e (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.hxx1
-rw-r--r--sc/source/core/tool/rangenam.cxx9
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);
}