[Libreoffice-commits] core.git: Branch 'libreoffice-5-2-3' - sc/source

2016-10-25 Thread Eike Rathke
 sc/source/filter/excel/xilink.cxx |   12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

New commits:
commit 15054d82cc94a392ff708d499e395ab184818c24
Author: Eike Rathke 
Date:   Thu Oct 20 00:58:06 2016 +0200

Resolves: tdf#85553 intern SharedString of cached external references result

(cherry picked from commit 0d2797fdb06f504e7213b3859a53c363f4f56bc9)

 Conflicts:
sc/source/filter/excel/xilink.cxx

Change-Id: I13f19b5bd5f2897eb48af69742be885803cca066
Reviewed-on: https://gerrit.libreoffice.org/30069
Reviewed-by: Stephan Bergmann 
Reviewed-by: Michael Meeks 
Reviewed-by: Caolán McNamara 
Tested-by: Caolán McNamara 

diff --git a/sc/source/filter/excel/xilink.cxx 
b/sc/source/filter/excel/xilink.cxx
index 467cc99..f779a5f 100644
--- a/sc/source/filter/excel/xilink.cxx
+++ b/sc/source/filter/excel/xilink.cxx
@@ -71,7 +71,8 @@ public:
 /** Reads a CRN record (external referenced cell) at the specified 
address. */
 voidReadCrn( XclImpStream& rStrm, const XclAddress& 
rXclPos );
 
-voidLoadCachedValues(const 
ScExternalRefCache::TableTypeRef& pCacheTable);
+voidLoadCachedValues( const 
ScExternalRefCache::TableTypeRef& pCacheTable,
+  svl::SharedStringPool& rPool );
 
 private:
 typedef std::shared_ptr< XclImpCrn > XclImpCrnRef;
@@ -574,7 +575,8 @@ void XclImpSupbookTab::ReadCrn( XclImpStream& rStrm, const 
XclAddress& rXclPos )
 maCrnList.push_back( crnRef );
 }
 
-void XclImpSupbookTab::LoadCachedValues(const 
ScExternalRefCache::TableTypeRef& pCacheTable)
+void XclImpSupbookTab::LoadCachedValues( const 
ScExternalRefCache::TableTypeRef& pCacheTable,
+svl::SharedStringPool& rPool )
 {
 if (maCrnList.empty())
 return;
@@ -608,8 +610,8 @@ void XclImpSupbookTab::LoadCachedValues(const 
ScExternalRefCache::TableTypeRef&
 break;
 case EXC_CACHEDVAL_STRING:
 {
-const OUString& rStr = pCrn->GetString();
-ScExternalRefCache::TokenRef pToken(new 
formula::FormulaStringToken(rStr));
+svl::SharedString aSS( rPool.intern( pCrn->GetString()));
+ScExternalRefCache::TokenRef pToken(new 
formula::FormulaStringToken( aSS));
 pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken, 0, 
false);
 }
 break;
@@ -753,7 +755,7 @@ void XclImpSupbook::LoadCachedValues()
 {
 const OUString& rTabName = (*itTab)->GetTabName();
 ScExternalRefCache::TableTypeRef pCacheTable = 
pRefMgr->getCacheTable(nFileId, rTabName, true);
-(*itTab)->LoadCachedValues(pCacheTable);
+(*itTab)->LoadCachedValues( pCacheTable, GetSharedStringPool());
 pCacheTable->setWholeTableCached();
 }
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-5-2-3' - sc/source

2016-10-25 Thread Eike Rathke
 sc/source/ui/docshell/externalrefmgr.cxx |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 24cf67d7df78c95011cb7f56c6673b45fffb7bda
Author: Eike Rathke 
Date:   Tue Oct 11 15:10:46 2016 +0200

Resolves: tdf#101691 re-intern strings of external formula results

If the external cell referenced is a formula result of type string that
string needs to be re-interned for the reference cache as well.

Change-Id: Iea3c3d777dede2ad6ba0b084533af964da991ca6
(cherry picked from commit 351164ea2c70923e47d5f01f3934c73cfc5839a9)
Reviewed-on: https://gerrit.libreoffice.org/29737
Reviewed-by: Markus Mohrhard 
Reviewed-by: Michael Stahl 
Reviewed-by: Stephan Bergmann 
Tested-by: Stephan Bergmann 

diff --git a/sc/source/ui/docshell/externalrefmgr.cxx 
b/sc/source/ui/docshell/externalrefmgr.cxx
index 4ac4112..dac47e5 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -1558,8 +1558,8 @@ static FormulaToken* convertToToken( ScDocument* 
pHostDoc, ScDocument* pSrcDoc,
 }
 else
 {
-svl::SharedString aStr = pFCell->GetString();
-return new formula::FormulaStringToken(aStr);
+svl::SharedString aSS = 
pHostDoc->GetSharedStringPool().intern( pFCell->GetString().getString());
+return new formula::FormulaStringToken(aSS);
 }
 }
 default:
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits