This patch fix a code i ommited in a previos commit 674c10b068d27d5ebdb25458d31dd8a61b343eb6, also should be included in 3.4.1
From 0db0ac817dd9bcc30d6a60fec93ac58aafdee416 Mon Sep 17 00:00:00 2001 From: Rafael Dominguez <venccsra...@gmail.com> Date: Wed, 18 May 2011 12:26:13 -0430 Subject: [PATCH 1/6] Fix wrong refactoring of CloneList.
Amending commit 674c10b068d27d5ebdb25458d31dd8a61b343eb6. --- svx/source/svdraw/clonelist.cxx | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) diff --git a/svx/source/svdraw/clonelist.cxx b/svx/source/svdraw/clonelist.cxx index a39bb2f..a14d469 100644 --- a/svx/source/svdraw/clonelist.cxx +++ b/svx/source/svdraw/clonelist.cxx @@ -85,6 +85,8 @@ SdrObject* CloneList::GetClone(sal_uInt32 nIndex) const void CloneList::CopyConnections() const { + sal_uInt32 cloneCount = maCloneList.size(); + for(sal_uInt32 a = 0; a < maOriginalList.size(); a++) { const SdrEdgeObj* pOriginalEdge = PTR_CAST(SdrEdgeObj, GetOriginal(a)); @@ -101,10 +103,17 @@ void CloneList::CopyConnections() const maOriginalList.end(), pOriginalNode1); + sal_uInt32 nPos = it - maOriginalList.begin(); + if(it != maOriginalList.end()) { - if(pOriginalEdge->GetConnectedNode(sal_True) != *it) - pCloneEdge->ConnectToNode(sal_True, const_cast<SdrObject*>(*it)); + SdrObject *cObj = NULL; + + if (nPos < cloneCount) + cObj = GetClone(nPos); + + if(pOriginalEdge->GetConnectedNode(sal_True) != cObj) + pCloneEdge->ConnectToNode(sal_True, cObj); } } @@ -114,10 +123,17 @@ void CloneList::CopyConnections() const maOriginalList.end(), pOriginalNode2); + sal_uInt32 nPos = it - maOriginalList.begin(); + if(it != maOriginalList.end()) { - if(pOriginalEdge->GetConnectedNode(sal_True) != *it) - pCloneEdge->ConnectToNode(sal_True, const_cast<SdrObject*>(*it)); + SdrObject *cObj = NULL; + + if (nPos < cloneCount) + cObj = GetClone(nPos); + + if(pOriginalEdge->GetConnectedNode(sal_False) != cObj) + pCloneEdge->ConnectToNode(sal_False, cObj); } } } -- 1.7.3.4
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice