summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2013-01-10 23:48:17 -0500
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-01-11 05:09:40 +0000
commitcae060de53cbfc0737a75ed156aec8c383a14918 (patch)
tree9d6519326ee6ae800e19a7d23157b259867060cf
parent31664fbc882652f6b308fa5aab1eac48e9d0ad0a (diff)
fdo#59084: Sync dimension members after reloading the group data.
Else the syncing would end up syncing to the older version of the group data before the reload, which (as you can see in the bug report) may lead to a crash. Change-Id: Ibd674a97a59205e5e28efd007f8857731e8df4d3 Reviewed-on: https://gerrit.libreoffice.org/1635 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 4d0d2ec61b64..3b1db2f05e7a 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -1319,6 +1319,8 @@ bool ScDBDocFunc::DataPilotUpdate( ScDPObject* pOldObj, const ScDPObject* pNewOb
if ( pDestObj )
{
pDestObj->ReloadGroupTableData();
+ if (!pDestObj->SyncAllDimensionMembers())
+ return false;
pDestObj->InvalidateData(); // before getting the new output area
// make sure the table has a name (not set by dialog)
@@ -1461,8 +1463,6 @@ sal_uLong ScDBDocFunc::RefreshPivotTables(ScDPObject* pDPObj, bool bApi)
for (; it != itEnd; ++it)
{
ScDPObject* pObj = *it;
- if (!pObj->SyncAllDimensionMembers())
- continue;
// This action is intentionally not undoable since it modifies cache.
DataPilotUpdate(pObj, pObj, false, bApi);