[Libreoffice-commits] core.git: Branch 'private/kohei/calc-shared-string' - 3 commits - editeng/source include/editeng include/svl sc/inc sc/qa sc/source svl/qa svl/source
Kohei Yoshida
kohei.yoshida at collabora.com
Thu Oct 3 11:23:25 PDT 2013
editeng/source/editeng/editobj.cxx | 58 ++++++++++++++++++++++++++
editeng/source/editeng/editobj2.hxx | 4 +
include/editeng/editobj.hxx | 3 +
include/svl/stringpool.hxx | 5 --
sc/inc/column.hxx | 3 +
sc/inc/document.hxx | 8 ++-
sc/inc/table.hxx | 3 +
sc/qa/unit/ucalc.cxx | 80 ++++++++++++++++++++++++++++++++++++
sc/qa/unit/ucalc.hxx | 2
sc/source/core/data/column3.cxx | 58 ++++++++++++++++++++++++++
sc/source/core/data/documen2.cxx | 5 ++
sc/source/core/data/document.cxx | 16 +++++++
sc/source/core/data/table2.cxx | 16 +++++++
svl/qa/unit/svl.cxx | 4 -
svl/source/misc/stringpool.cxx | 8 +--
15 files changed, 261 insertions(+), 12 deletions(-)
New commits:
commit 927a907e17dd58c393e6bb6f54aa8a234d5d4223
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu Oct 3 14:24:28 2013 -0400
Add methods to turn cell strings into numeric IDs for comparison.
Both in case sensitive and case insensitive comparisons.
Change-Id: I356a655273f0f37157810c86e1cf3f87ea2afa09
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 6d09ad1..2f4d697 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -280,6 +280,9 @@ public:
ScFormulaCell* SetFormulaCell( sc::ColumnBlockPosition& rBlockPos, SCROW nRow, ScFormulaCell* pCell );
bool SetGroupFormulaCell( SCROW nRow, ScFormulaCell* pCell );
+ sal_uIntPtr GetCellStringID( SCROW nRow ) const;
+ sal_uIntPtr GetCellStringIDIgnoreCase( SCROW nRow ) const;
+
void SetRawString( SCROW nRow, const OUString& rStr, bool bBroadcast = true );
void SetRawString( sc::ColumnBlockPosition& rBlockPos, SCROW nRow, const OUString& rStr, bool bBroadcast = true );
void SetValue( SCROW nRow, double fVal );
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 6828d4d..2ef6073 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -436,7 +436,6 @@ public:
sal_uLong GetCodeCount() const; // RPN-Code in formulas
DECL_LINK( GetUserDefinedColor, sal_uInt16 * );
// number formatter
-
public:
SC_DLLPUBLIC ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT,
SfxObjectShell* pDocShell = NULL );
@@ -860,6 +859,11 @@ public:
*/
double* GetValueCell( const ScAddress& rPos );
+ svl::StringPool& GetCellStringPool();
+ const svl::StringPool& GetCellStringPool() const;
+ sal_uIntPtr GetCellStringID( const ScAddress& rPos ) const;
+ sal_uIntPtr GetCellStringIDIgnoreCase( const ScAddress& rPos ) const;
+
SC_DLLPUBLIC void GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, String& rString );
SC_DLLPUBLIC void GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, OUString& rString );
sal_uInt16 GetStringForFormula( const ScAddress& rPos, OUString& rString );
@@ -2066,8 +2070,6 @@ private: // CLOOK-Impl-methods
ScRefCellValue GetRefCellValue( const ScAddress& rPos );
- svl::StringPool& GetCellStringPool();
-
std::map< SCTAB, ScSortParam > mSheetSortParams;
};
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index fc8ae3a..ce7c5da 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -343,6 +343,9 @@ public:
ScFormulaCell* SetFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
bool SetGroupFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
+ sal_uIntPtr GetCellStringID( SCCOL nCol, SCROW nRow ) const;
+ sal_uIntPtr GetCellStringIDIgnoreCase( SCCOL nCol, SCROW nRow ) const;
+
void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
void SetError( SCCOL nCol, SCROW nRow, sal_uInt16 nError);
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 8d2266e..ba9a78e 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -63,6 +63,7 @@
#include <svx/svdocirc.hxx>
#include <svx/svdopath.hxx>
#include "svl/srchitem.hxx"
+#include "svl/stringpool.hxx"
#include <sfx2/docfile.hxx>
@@ -458,6 +459,85 @@ void Test::testCollator()
CPPUNIT_ASSERT_MESSAGE("these strings are supposed to be different!", nRes != 0);
}
+void Test::testCellStringPool()
+{
+ m_pDoc->InsertTab(0, "foo");
+
+ // Strings that are identical.
+ m_pDoc->SetString(ScAddress(0,0,0), "Andy"); // A1
+ m_pDoc->SetString(ScAddress(0,1,0), "Andy"); // A2
+ m_pDoc->SetString(ScAddress(0,2,0), "Bruce"); // A3
+ m_pDoc->SetString(ScAddress(0,3,0), "andy"); // A4
+ m_pDoc->SetString(ScAddress(0,4,0), "BRUCE"); // A5
+
+ sal_uIntPtr nId1 = m_pDoc->GetCellStringID(ScAddress(0,0,0));
+ sal_uIntPtr nId2 = m_pDoc->GetCellStringID(ScAddress(0,1,0));
+ CPPUNIT_ASSERT_MESSAGE("Failed to get a valid string ID.", nId1);
+ CPPUNIT_ASSERT_MESSAGE("Failed to get a valid string ID.", nId2);
+ CPPUNIT_ASSERT_EQUAL(nId1, nId2);
+
+ nId2 = m_pDoc->GetCellStringID(ScAddress(0,2,0));
+ CPPUNIT_ASSERT_MESSAGE("They must differ", nId1 != nId2);
+
+ nId2 = m_pDoc->GetCellStringID(ScAddress(0,3,0));
+ CPPUNIT_ASSERT_MESSAGE("They must differ", nId1 != nId2);
+
+ nId2 = m_pDoc->GetCellStringID(ScAddress(0,4,0));
+ CPPUNIT_ASSERT_MESSAGE("They must differ", nId1 != nId2);
+
+ // A3 and A5 should differ but should be equal case-insensitively.
+ nId1 = m_pDoc->GetCellStringID(ScAddress(0,2,0));
+ nId2 = m_pDoc->GetCellStringID(ScAddress(0,4,0));
+ CPPUNIT_ASSERT_MESSAGE("They must differ", nId1 != nId2);
+
+ nId1 = m_pDoc->GetCellStringIDIgnoreCase(ScAddress(0,2,0));
+ nId2 = m_pDoc->GetCellStringIDIgnoreCase(ScAddress(0,4,0));
+ CPPUNIT_ASSERT_MESSAGE("They must be equal when cases are ignored.", nId1 == nId2);
+
+ // A2 and A4 should be equal when ignoring cases.
+ nId1 = m_pDoc->GetCellStringIDIgnoreCase(ScAddress(0,1,0));
+ nId2 = m_pDoc->GetCellStringIDIgnoreCase(ScAddress(0,3,0));
+ CPPUNIT_ASSERT_MESSAGE("They must be equal when cases are ignored.", nId1 == nId2);
+
+ // Check the string counts after purging. Purging shouldn't remove any strings in this case.
+ svl::StringPool& rPool = m_pDoc->GetCellStringPool();
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCountIgnoreCase());
+
+ // Clear A1 and purge again.
+ clearRange(m_pDoc, ScAddress(0,0,0));
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCountIgnoreCase());
+
+ // Clear A2 and purge again.
+ clearRange(m_pDoc, ScAddress(0,1,0));
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCountIgnoreCase());
+
+ // Clear A3 and purge again.
+ clearRange(m_pDoc, ScAddress(0,2,0));
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCountIgnoreCase());
+
+ // Clear A4 and purge again.
+ clearRange(m_pDoc, ScAddress(0,3,0));
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), rPool.getCountIgnoreCase());
+
+ // Clear A5 and the pool should be completely empty.
+ clearRange(m_pDoc, ScAddress(0,4,0));
+ rPool.purge();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), rPool.getCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), rPool.getCountIgnoreCase());
+
+ m_pDoc->DeleteTab(0);
+}
+
void Test::testRangeList()
{
m_pDoc->InsertTab(0, "foo");
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index d01714e..d1ba668 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -80,6 +80,7 @@ public:
*/
void testPerf();
void testCollator();
+ void testCellStringPool();
void testRangeList();
void testInput();
@@ -284,6 +285,7 @@ public:
CPPUNIT_TEST(testPerf);
#endif
CPPUNIT_TEST(testCollator);
+ CPPUNIT_TEST(testCellStringPool);
CPPUNIT_TEST(testRangeList);
CPPUNIT_TEST(testInput);
CPPUNIT_TEST(testFormulaHashAndTag);
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index f5eccae..6c964ca 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -1732,6 +1732,64 @@ bool ScColumn::SetGroupFormulaCell( SCROW nRow, ScFormulaCell* pCell )
return true;
}
+sal_uIntPtr ScColumn::GetCellStringID( SCROW nRow ) const
+{
+ sc::CellStoreType::const_position_type aPos = maCells.position(nRow);
+ switch (aPos.first->type)
+ {
+ case sc::element_type_string:
+ {
+ const OUString& rStr = sc::string_block::at(*aPos.first->data, aPos.second);
+ return pDocument->GetCellStringPool().getIdentifier(rStr);
+ }
+ break;
+ case sc::element_type_edittext:
+ {
+ std::vector<sal_uIntPtr> aIDs;
+ const EditTextObject* pObj = sc::edittext_block::at(*aPos.first->data, aPos.second);
+ pObj->GetStringIDs(pDocument->GetCellStringPool(), aIDs);
+ if (aIDs.size() != 1)
+ // We don't handle multiline content for now.
+ return 0;
+
+ return aIDs[0];
+ }
+ break;
+ default:
+ ;
+ }
+ return 0;
+}
+
+sal_uIntPtr ScColumn::GetCellStringIDIgnoreCase( SCROW nRow ) const
+{
+ sc::CellStoreType::const_position_type aPos = maCells.position(nRow);
+ switch (aPos.first->type)
+ {
+ case sc::element_type_string:
+ {
+ const OUString& rStr = sc::string_block::at(*aPos.first->data, aPos.second);
+ return pDocument->GetCellStringPool().getIdentifierIgnoreCase(rStr);
+ }
+ break;
+ case sc::element_type_edittext:
+ {
+ std::vector<sal_uIntPtr> aIDs;
+ const EditTextObject* pObj = sc::edittext_block::at(*aPos.first->data, aPos.second);
+ pObj->GetStringIDsIgnoreCase(pDocument->GetCellStringPool(), aIDs);
+ if (aIDs.size() != 1)
+ // We don't handle multiline content for now.
+ return 0;
+
+ return aIDs[0];
+ }
+ break;
+ default:
+ ;
+ }
+ return 0;
+}
+
namespace {
class FilterEntriesHandler
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index deec664..8946c93 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -605,6 +605,11 @@ svl::StringPool& ScDocument::GetCellStringPool()
return *mpCellStringPool;
}
+const svl::StringPool& ScDocument::GetCellStringPool() const
+{
+ return *mpCellStringPool;
+}
+
bool ScDocument::GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
bool bNotes ) const
{
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index dc7db44..9b91290 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3221,6 +3221,22 @@ double* ScDocument::GetValueCell( const ScAddress& rPos )
return maTabs[rPos.Tab()]->GetValueCell(rPos.Col(), rPos.Row());
}
+sal_uIntPtr ScDocument::GetCellStringID( const ScAddress& rPos ) const
+{
+ if (!TableExists(rPos.Tab()))
+ return 0;
+
+ return maTabs[rPos.Tab()]->GetCellStringID(rPos.Col(), rPos.Row());
+}
+
+sal_uIntPtr ScDocument::GetCellStringIDIgnoreCase( const ScAddress& rPos ) const
+{
+ if (!TableExists(rPos.Tab()))
+ return 0;
+
+ return maTabs[rPos.Tab()]->GetCellStringIDIgnoreCase(rPos.Col(), rPos.Row());
+}
+
void ScDocument::GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, OUString& rString )
{
if ( ValidTab(nTab) && nTab < static_cast<SCTAB>(maTabs.size()) && maTabs[nTab] )
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 7bd7ac6..4e2ae2a 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -1505,6 +1505,22 @@ bool ScTable::SetGroupFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell
return aCol[nCol].SetGroupFormulaCell(nRow, pCell);
}
+sal_uIntPtr ScTable::GetCellStringID( SCCOL nCol, SCROW nRow ) const
+{
+ if (!ValidColRow(nCol, nRow))
+ return 0;
+
+ return aCol[nCol].GetCellStringID(nRow);
+}
+
+sal_uIntPtr ScTable::GetCellStringIDIgnoreCase( SCCOL nCol, SCROW nRow ) const
+{
+ if (!ValidColRow(nCol, nRow))
+ return 0;
+
+ return aCol[nCol].GetCellStringIDIgnoreCase(nRow);
+}
+
void ScTable::SetValue( SCCOL nCol, SCROW nRow, const double& rVal )
{
if (ValidColRow(nCol, nRow))
commit 5f972ca0bd5b275637f7fd71e4301fe91de377ef
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu Oct 3 12:16:22 2013 -0400
Add methods to extract string IDs from edit text object.
Note that a single edit text object may have multiple string ID's in case
it consists of multiple paragraphs.
Change-Id: Ie90541de38a639c30a010817dada389e9445d08c
diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx
index aaf5e5f..4e6af47 100644
--- a/editeng/source/editeng/editobj.cxx
+++ b/editeng/source/editeng/editobj.cxx
@@ -154,6 +154,16 @@ void ContentInfo::NormalizeString( svl::StringPool& rPool )
aText = OUString(rPool.intern(aText));
}
+sal_uIntPtr ContentInfo::GetStringID( const svl::StringPool& rPool ) const
+{
+ return rPool.getIdentifier(aText);
+}
+
+sal_uIntPtr ContentInfo::GetStringIDIgnoreCase( const svl::StringPool& rPool ) const
+{
+ return rPool.getIdentifierIgnoreCase(aText);
+}
+
const WrongList* ContentInfo::GetWrongList() const
{
return mpWrongs.get();
@@ -327,6 +337,16 @@ void EditTextObject::NormalizeString( svl::StringPool& rPool )
mpImpl->NormalizeString(rPool);
}
+bool EditTextObject::GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
+{
+ return mpImpl->GetStringIDs(rPool, rIDs);
+}
+
+bool EditTextObject::GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
+{
+ return mpImpl->GetStringIDsIgnoreCase(rPool, rIDs);
+}
+
const SfxItemPool* EditTextObject::GetPool() const
{
return mpImpl->GetPool();
@@ -623,6 +643,44 @@ void EditTextObjectImpl::NormalizeString( svl::StringPool& rPool )
}
}
+bool EditTextObjectImpl::GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
+{
+ std::vector<sal_uIntPtr> aIDs;
+ aIDs.reserve(aContents.size());
+ ContentInfosType::const_iterator it = aContents.begin(), itEnd = aContents.end();
+ for (; it != itEnd; ++it)
+ {
+ const ContentInfo& rInfo = *it;
+ sal_uIntPtr nID = rInfo.GetStringID(rPool);
+ if (!nID)
+ return false;
+
+ aIDs.push_back(nID);
+ }
+
+ rIDs.swap(aIDs);
+ return true;
+}
+
+bool EditTextObjectImpl::GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const
+{
+ std::vector<sal_uIntPtr> aIDs;
+ aIDs.reserve(aContents.size());
+ ContentInfosType::const_iterator it = aContents.begin(), itEnd = aContents.end();
+ for (; it != itEnd; ++it)
+ {
+ const ContentInfo& rInfo = *it;
+ sal_uIntPtr nID = rInfo.GetStringIDIgnoreCase(rPool);
+ if (!nID)
+ return false;
+
+ aIDs.push_back(nID);
+ }
+
+ rIDs.swap(aIDs);
+ return true;
+}
+
bool EditTextObjectImpl::IsVertical() const
{
return bVertical;
diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx
index c331134..d2118d7 100644
--- a/editeng/source/editeng/editobj2.hxx
+++ b/editeng/source/editeng/editobj2.hxx
@@ -143,6 +143,8 @@ public:
~ContentInfo();
void NormalizeString( svl::StringPool& rPool );
+ sal_uIntPtr GetStringID( const svl::StringPool& rPool ) const;
+ sal_uIntPtr GetStringIDIgnoreCase( const svl::StringPool& rPool ) const;
const XEditAttributesType& GetAttribs() const { return aAttribs; }
XEditAttributesType& GetAttribs() { return aAttribs; }
@@ -207,6 +209,8 @@ public:
void SetUserType( sal_uInt16 n );
void NormalizeString( svl::StringPool& rPool );
+ bool GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
+ bool GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
bool IsVertical() const;
void SetVertical( bool b );
diff --git a/include/editeng/editobj.hxx b/include/editeng/editobj.hxx
index 36392e2..4751469 100644
--- a/include/editeng/editobj.hxx
+++ b/include/editeng/editobj.hxx
@@ -85,6 +85,9 @@ public:
*/
void NormalizeString( svl::StringPool& rPool );
+ bool GetStringIDs( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
+ bool GetStringIDsIgnoreCase( const svl::StringPool& rPool, std::vector<sal_uIntPtr>& rIDs ) const;
+
const SfxItemPool* GetPool() const;
sal_uInt16 GetUserType() const; // For OutlinerMode, it can however not save in compatible format
void SetUserType( sal_uInt16 n );
commit e73c580538bc6fe83441e2db94a4ec2708fbca84
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu Oct 3 11:34:24 2013 -0400
Let's just use sal_uIntPtr straight.
So that the user of this class won't have to include the header just
to get the string ID type.
Change-Id: I0ccbc18fe02644f69701f57b0b1b9c30fd141d83
diff --git a/include/svl/stringpool.hxx b/include/svl/stringpool.hxx
index cac7637..fbcff1e 100644
--- a/include/svl/stringpool.hxx
+++ b/include/svl/stringpool.hxx
@@ -37,7 +37,6 @@ class SVL_DLLPUBLIC StringPool
const CharClass* mpCharClass;
public:
- typedef sal_uIntPtr StrIdType;
StringPool();
StringPool( const CharClass* pCharClass );
@@ -61,7 +60,7 @@ public:
*
* @return unique ID of the string object.
*/
- StrIdType getIdentifier( const OUString& rStr ) const;
+ sal_uIntPtr getIdentifier( const OUString& rStr ) const;
/**
* Get a unique ID of string object for case insensitive comparison. The
@@ -72,7 +71,7 @@ public:
* @return unique ID of the string object usable for case insensitive
* comparison.
*/
- StrIdType getIdentifierIgnoreCase( const OUString& rStr ) const;
+ sal_uIntPtr getIdentifierIgnoreCase( const OUString& rStr ) const;
/**
* Go through all string objects in the pool, and clear those that are no
diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx
index 11a52e6..a34bb47 100644
--- a/svl/qa/unit/svl.cxx
+++ b/svl/qa/unit/svl.cxx
@@ -309,8 +309,8 @@ void Test::testStringPool()
CPPUNIT_ASSERT_MESSAGE("They must differ.", p1 != p2);
OUString aAndy("Andy");
- svl::StringPool::StrIdType si1 = aPool.getIdentifier("Andy");
- svl::StringPool::StrIdType si2 = aPool.getIdentifier(aAndy);
+ sal_uIntPtr si1 = aPool.getIdentifier("Andy");
+ sal_uIntPtr si2 = aPool.getIdentifier(aAndy);
CPPUNIT_ASSERT_MESSAGE("Identifier shouldn't be 0.", si1);
CPPUNIT_ASSERT_MESSAGE("Identifier shouldn't be 0.", si2);
CPPUNIT_ASSERT_EQUAL(si1, si2);
diff --git a/svl/source/misc/stringpool.cxx b/svl/source/misc/stringpool.cxx
index 4760348..7ebc207 100644
--- a/svl/source/misc/stringpool.cxx
+++ b/svl/source/misc/stringpool.cxx
@@ -45,13 +45,13 @@ rtl_uString* StringPool::intern( const OUString& rStr )
return pOrig;
}
-StringPool::StrIdType StringPool::getIdentifier( const OUString& rStr ) const
+sal_uIntPtr StringPool::getIdentifier( const OUString& rStr ) const
{
StrHashType::const_iterator it = maStrPool.find(rStr);
- return (it == maStrPool.end()) ? 0 : reinterpret_cast<StrIdType>(it->pData);
+ return (it == maStrPool.end()) ? 0 : reinterpret_cast<sal_uIntPtr>(it->pData);
}
-StringPool::StrIdType StringPool::getIdentifierIgnoreCase( const OUString& rStr ) const
+sal_uIntPtr StringPool::getIdentifierIgnoreCase( const OUString& rStr ) const
{
StrHashType::const_iterator itOrig = maStrPool.find(rStr);
if (itOrig == maStrPool.end())
@@ -64,7 +64,7 @@ StringPool::StrIdType StringPool::getIdentifierIgnoreCase( const OUString& rStr
return 0;
const rtl_uString* pUpper = itUpper->second.pData;
- return reinterpret_cast<StrIdType>(pUpper);
+ return reinterpret_cast<sal_uIntPtr>(pUpper);
}
namespace {
More information about the Libreoffice-commits
mailing list