summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-02-24 13:10:17 -0500
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-02-24 13:13:51 -0500
commite752620bf593af8839831f693ec21bb02a8b23d6 (patch)
tree007522d382c7404a9a3e682d0f4c7fd23ad39e22 /sc
parentd7e5c54451acc9959fd38f0db7eb7e5ac6b38858 (diff)
fdo#75259: Let undo document share its string pool with the source doc.
We already do that for the pool helper. It would only make sense to do it for shared strings as well. Change-Id: I813d262799af6f0c1d3fa12246ad973f852ac199
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/document.hxx4
-rw-r--r--sc/source/core/data/document.cxx3
2 files changed, 6 insertions, 1 deletions
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 0ab8400c8a23..6bb74e23f186 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -46,6 +46,8 @@
#include <vector>
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+
#include "markdata.hxx"
namespace editeng { class SvxBorderLine; }
@@ -260,7 +262,7 @@ private:
rtl::Reference<ScPoolHelper> xPoolHelper;
- boost::scoped_ptr<svl::SharedStringPool> mpCellStringPool;
+ boost::shared_ptr<svl::SharedStringPool> mpCellStringPool;
boost::scoped_ptr<sc::FormulaGroupContext> mpFormulaGroupCxt;
mutable boost::scoped_ptr<sc::DocumentLinkManager> mpDocLinkMgr;
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 92d1f7e03428..963ffe625f3b 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -1852,7 +1852,10 @@ void ScDocument::InitUndo( ScDocument* pSrcDoc, SCTAB nTab1, SCTAB nTab2,
{
Clear();
+ // Undo document shares its pooled resources with the source document.
xPoolHelper = pSrcDoc->xPoolHelper;
+ mpCellStringPool = pSrcDoc->mpCellStringPool;
+
if (pSrcDoc->pShell->GetMedium())
maFileURL = pSrcDoc->pShell->GetMedium()->GetURLObject().GetMainURL(INetURLObject::DECODE_TO_IURI);