Kaydet (Commit) 8a449369 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Oops I shouldn't have erased names directly.

We always need to remove the index map when removing a name.
üst 4a00c3d7
...@@ -230,6 +230,7 @@ public: ...@@ -230,6 +230,7 @@ public:
SC_DLLPUBLIC bool insert(ScRangeData* p); SC_DLLPUBLIC bool insert(ScRangeData* p);
void erase(const ScRangeData& r); void erase(const ScRangeData& r);
void erase(const rtl::OUString& rName);
/** /**
* Erase by iterator position. Note that this method doesn't check for * Erase by iterator position. Note that this method doesn't check for
......
...@@ -894,7 +894,7 @@ bool ScRangeName::insert(ScRangeData* p) ...@@ -894,7 +894,7 @@ bool ScRangeName::insert(ScRangeData* p)
} }
rtl::OUString aName(p->GetUpperName()); 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); pair<DataType::iterator, bool> r = maData.insert(aName, p);
if (r.second) if (r.second)
{ {
...@@ -909,7 +909,12 @@ bool ScRangeName::insert(ScRangeData* p) ...@@ -909,7 +909,12 @@ bool ScRangeName::insert(ScRangeData* p)
void ScRangeName::erase(const ScRangeData& r) 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()) if (itr != maData.end())
erase(itr); erase(itr);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment