summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-12-04 00:29:29 +0100
committerEike Rathke <erack@redhat.com>2013-12-04 00:38:12 +0100
commit882665d821a2fc705b7ae03372c2ae7593028210 (patch)
tree4aa50b2feef62ede33b8873149e5c685cb86e0c0 /sc/source/filter/excel
parentbfd1909c87d0d645f1bbb74a142172ecc15100e8 (diff)
resolved fdo#72288 made case insensitive matrix string query work again
The SharedString stored at ScQueryEntry::Item was constructed from an OUString passed from ScMatrixValue::GetString() so rItem.maString.getDataIgnoreCase() in QueryEvaluator::compareByString() was NULL and never evaluated equal. Made ScMatrixValue::GetString() return a SharedString instead. Change-Id: I473d5724dfb97707fea58e6b72b1396c049b79c8
Diffstat (limited to 'sc/source/filter/excel')
-rw-r--r--sc/source/filter/excel/xeformula.cxx6
-rw-r--r--sc/source/filter/excel/xehelper.cxx2
-rw-r--r--sc/source/filter/excel/xilink.cxx4
3 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx
index ba02aefae85f..19040ff0e367 100644
--- a/sc/source/filter/excel/xeformula.cxx
+++ b/sc/source/filter/excel/xeformula.cxx
@@ -1319,8 +1319,8 @@ void XclExpFmlaCompImpl::ProcessMatrix( const XclExpScToken& rTokData )
}
else // string or empty
{
- const OUString& rStr = nMatVal.GetString();
- if( rStr.isEmpty() )
+ const OUString aStr( nMatVal.GetString().getString());
+ if( aStr.isEmpty() )
{
AppendExt( EXC_CACHEDVAL_EMPTY );
AppendExt( 0, 8 );
@@ -1328,7 +1328,7 @@ void XclExpFmlaCompImpl::ProcessMatrix( const XclExpScToken& rTokData )
else
{
AppendExt( EXC_CACHEDVAL_STRING );
- AppendExt( rStr );
+ AppendExt( aStr );
}
}
}
diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx
index c64006a67642..2e6b4cf54fdb 100644
--- a/sc/source/filter/excel/xehelper.cxx
+++ b/sc/source/filter/excel/xehelper.cxx
@@ -1034,7 +1034,7 @@ void XclExpCachedMatrix::Save( XclExpStream& rStrm ) const
}
else if( ScMatrix::IsNonValueType( nMatVal.nType ) )
{
- XclExpString aStr( nMatVal.GetString(), EXC_STR_DEFAULT );
+ XclExpString aStr( nMatVal.GetString().getString(), EXC_STR_DEFAULT );
rStrm.SetSliceSize( 6 );
rStrm << EXC_CACHEDVAL_STRING << aStr;
}
diff --git a/sc/source/filter/excel/xilink.cxx b/sc/source/filter/excel/xilink.cxx
index 3a687eb3c49a..a33da234a82a 100644
--- a/sc/source/filter/excel/xilink.cxx
+++ b/sc/source/filter/excel/xilink.cxx
@@ -517,8 +517,8 @@ bool XclImpExtName::CreateOleData(ScDocument& rDoc, const OUString& rUrl,
break;
case SC_MATVAL_STRING:
{
- const OUString& rStr = aVal.GetString();
- ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(rStr));
+ const svl::SharedString aStr( aVal.GetString());
+ ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(aStr));
xTab->setCell(nCol, nRow, pToken, 0, false);
}
break;