summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-04 18:21:43 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:07 -0500
commit0df4b4a86073690ea9013645a39631289ea609a5 (patch)
tree30d9d28daef1b86b24c881f012649518aa299b5d /sc
parente422d9efc36407cae4220c025a4c2d8e8de14be9 (diff)
Removed SearchNameUpper() in favor of findByUpperName().
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/rangenam.hxx3
-rw-r--r--sc/source/core/data/dpshttab.cxx5
-rw-r--r--sc/source/core/tool/compiler.cxx9
-rw-r--r--sc/source/core/tool/rangenam.cxx14
-rw-r--r--sc/source/ui/dbgui/pvlaydlg.cxx6
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx19
6 files changed, 27 insertions, 29 deletions
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx
index 914f185e9f81..995d664ff108 100644
--- a/sc/inc/rangenam.hxx
+++ b/sc/inc/rangenam.hxx
@@ -121,6 +121,7 @@ public:
void SetIndex( USHORT nInd ) { nIndex = nInd; }
USHORT GetIndex() const { return nIndex; }
ScTokenArray* GetCode() { return pCode; }
+ const ScTokenArray* GetCode() const { return pCode; }
USHORT GetErrCode();
BOOL HasReferences() const;
void SetDocument( ScDocument* pDocument){ pDoc = pDocument; }
@@ -198,8 +199,8 @@ public:
SC_DLLPUBLIC const ScRangeData* GetRangeAtBlock(const ScRange& rRange) const;
SC_DLLPUBLIC ScRangeData* findByName(const rtl::OUString& rName);
SC_DLLPUBLIC const ScRangeData* findByName(const rtl::OUString& rName) const;
+ ScRangeData* findByUpperName(const rtl::OUString& rName);
const ScRangeData* findByUpperName(const rtl::OUString& rName) const;
- bool SearchNameUpper(const rtl::OUString& rUpperName, sal_uInt16& rPos) const;
void UpdateReference(UpdateRefMode eUpdateRefMode, const ScRange& rRange,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz);
void UpdateTabRef(SCTAB nTable, sal_uInt16 nFlag, SCTAB nNewTable = 0);
diff --git a/sc/source/core/data/dpshttab.cxx b/sc/source/core/data/dpshttab.cxx
index 2c00a1328cd7..ec2270029a3d 100644
--- a/sc/source/core/data/dpshttab.cxx
+++ b/sc/source/core/data/dpshttab.cxx
@@ -258,13 +258,12 @@ const ScRange& ScSheetSourceDesc::GetSourceRange() const
break;
OUString aUpper = ScGlobal::pCharClass->upper(maRangeName);
- USHORT n;
- if (!pRangeName->SearchNameUpper(aUpper, n))
+ const ScRangeData* pData = pRangeName->findByUpperName(aUpper);
+ if (!pData)
break;
// range name found. Fow now, we only use the first token and
// ignore the rest.
- ScRangeData* pData = (*pRangeName)[n];
ScRange aRange;
if (!pData->IsReference(aRange))
break;
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index c822039778e6..3f2e4aaab8bc 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2896,18 +2896,17 @@ BOOL ScCompiler::IsNamedRange( const String& rUpperName )
{
// IsNamedRange is called only from NextNewToken, with an upper-case string
- USHORT n;
ScRangeName* pRangeName = pDoc->GetRangeName();
- if (pRangeName->SearchNameUpper( rUpperName, n ) )
+ const ScRangeData* pData = pRangeName->findByUpperName(rUpperName);
+ if (pData)
{
- const ScRangeData* pData = (*pRangeName)[n];
ScRawToken aToken;
aToken.SetName( pData->GetIndex() );
pRawToken = aToken.Clone();
- return TRUE;
+ return true;
}
else
- return FALSE;
+ return false;
}
bool ScCompiler::IsExternalNamedRange( const String& rSymbol )
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index 97d5f2b0b59e..2214c0bc56e5 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -716,9 +716,9 @@ const ScRangeData* ScRangeName::findByName(const OUString& rName) const
return NULL;
}
-const ScRangeData* ScRangeName::findByUpperName(const OUString& rName) const
+ScRangeData* ScRangeName::findByUpperName(const OUString& rName)
{
- DataType::const_iterator itr = maData.begin(), itrEnd = maData.end();
+ DataType::iterator itr = maData.begin(), itrEnd = maData.end();
for (; itr != itrEnd; ++itr)
{
if (rName.equals(itr->GetUpperName()))
@@ -727,9 +727,15 @@ const ScRangeData* ScRangeName::findByUpperName(const OUString& rName) const
return NULL;
}
-bool ScRangeName::SearchNameUpper(const rtl::OUString& rName, sal_uInt16& rPos) const
+const ScRangeData* ScRangeName::findByUpperName(const OUString& rName) const
{
- return false;
+ DataType::const_iterator itr = maData.begin(), itrEnd = maData.end();
+ for (; itr != itrEnd; ++itr)
+ {
+ if (rName.equals(itr->GetUpperName()))
+ return &(*itr);
+ }
+ return NULL;
}
void ScRangeName::UpdateReference(
diff --git a/sc/source/ui/dbgui/pvlaydlg.cxx b/sc/source/ui/dbgui/pvlaydlg.cxx
index d237e807242b..71ba04990861 100644
--- a/sc/source/ui/dbgui/pvlaydlg.cxx
+++ b/sc/source/ui/dbgui/pvlaydlg.cxx
@@ -1407,12 +1407,10 @@ void ScDPLayoutDlg::UpdateSrcRange()
if (pRangeName)
{
OUString aUpper = ScGlobal::pCharClass->upper(aSrcStr);
- USHORT n;
- bValid = pRangeName->SearchNameUpper(aUpper, n);
- if (bValid)
+ const ScRangeData* pData = pRangeName->findByUpperName(aUpper);
+ if (pData)
{
// range name found. Check if this is a valid reference.
- ScRangeData* pData = (*pRangeName)[n];
bValid = pData->IsReference(aNewRange);
}
}
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 4b8a7e7d555f..2c2bb32e3ef9 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -2000,12 +2000,7 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getRangeNameTokensFromSr
{
ScRangeName* pExtNames = pSrcDoc->GetRangeName();
String aUpperName = ScGlobal::pCharClass->upper(rName);
- USHORT n;
- bool bRes = pExtNames->SearchNameUpper(aUpperName, n);
- if (!bRes)
- return ScExternalRefCache::TokenArrayRef();
-
- ScRangeData* pRangeData = (*pExtNames)[n];
+ const ScRangeData* pRangeData = pExtNames->findByUpperName(aUpperName);
if (!pRangeData)
return ScExternalRefCache::TokenArrayRef();
@@ -2016,28 +2011,28 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getRangeNameTokensFromSr
ScExternalRefCache::TokenArrayRef pNew(new ScTokenArray);
- ScTokenArray* pCode = pRangeData->GetCode();
- for (FormulaToken* pToken = pCode->First(); pToken; pToken = pCode->Next())
+ ScTokenArray aCode(*pRangeData->GetCode());
+ for (const FormulaToken* pToken = aCode.First(); pToken; pToken = aCode.Next())
{
bool bTokenAdded = false;
switch (pToken->GetType())
{
case svSingleRef:
{
- const ScSingleRefData& rRef = static_cast<ScToken*>(pToken)->GetSingleRef();
+ const ScSingleRefData& rRef = static_cast<const ScToken*>(pToken)->GetSingleRef();
String aTabName;
pSrcDoc->GetName(rRef.nTab, aTabName);
- ScExternalSingleRefToken aNewToken(nFileId, aTabName, static_cast<ScToken*>(pToken)->GetSingleRef());
+ ScExternalSingleRefToken aNewToken(nFileId, aTabName, static_cast<const ScToken*>(pToken)->GetSingleRef());
pNew->AddToken(aNewToken);
bTokenAdded = true;
}
break;
case svDoubleRef:
{
- const ScSingleRefData& rRef = static_cast<ScToken*>(pToken)->GetSingleRef();
+ const ScSingleRefData& rRef = static_cast<const ScToken*>(pToken)->GetSingleRef();
String aTabName;
pSrcDoc->GetName(rRef.nTab, aTabName);
- ScExternalDoubleRefToken aNewToken(nFileId, aTabName, static_cast<ScToken*>(pToken)->GetDoubleRef());
+ ScExternalDoubleRefToken aNewToken(nFileId, aTabName, static_cast<const ScToken*>(pToken)->GetDoubleRef());
pNew->AddToken(aNewToken);
bTokenAdded = true;
}