diff --git a/0001-Resolves-rhbz-907933-crash-on-removing-second-last-p.patch b/0001-Resolves-rhbz-907933-crash-on-removing-second-last-p.patch new file mode 100644 index 0000000..c1699d9 --- /dev/null +++ b/0001-Resolves-rhbz-907933-crash-on-removing-second-last-p.patch @@ -0,0 +1,66 @@ +From 15d8b51bf82610c663f80fe552a1c0315e137ad3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 5 Feb 2013 17:33:49 +0000 +Subject: [PATCH] Resolves: rhbz#907933 crash on removing second last para in + cell... + +if (basically) the last para is on next page + +Change-Id: Iaff610ea94a829e73bfb8c694a27e0e9b4f6e295 +Reviewed-on: https://gerrit.libreoffice.org/2012 +Tested-by: Michael Stahl +Reviewed-by: Michael Stahl +--- + sw/source/core/inc/tabfrm.hxx | 2 ++ + sw/source/core/layout/tabfrm.cxx | 20 ++++++++++++++++++++ + 2 files changed, 22 insertions(+) + +diff --git a/sw/source/core/inc/tabfrm.hxx b/sw/source/core/inc/tabfrm.hxx +index 464fc9c..1041385 100644 +--- a/sw/source/core/inc/tabfrm.hxx ++++ b/sw/source/core/inc/tabfrm.hxx +@@ -151,6 +151,8 @@ public: + // + sal_Bool HasFollowFlowLine() const { return bHasFollowFlowLine; } + void SetFollowFlowLine( sal_Bool bNew ) { bHasFollowFlowLine = bNew; } ++ //return the SwTabFrm (if any) that this SwTabFrm is a follow flow line for ++ SwTabFrm* GetFollowFlowLineFor(); + + sal_Bool IsRebuildLastLine() const { return bIsRebuildLastLine; } + void SetRebuildLastLine( sal_Bool bNew ) { bIsRebuildLastLine = bNew; } +diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx +index 27ad754..fb23128 100644 +--- a/sw/source/core/layout/tabfrm.cxx ++++ b/sw/source/core/layout/tabfrm.cxx +@@ -132,8 +132,28 @@ extern const SwTable *pRowCacheLastTable; + extern const SwTabFrm *pRowCacheLastTabFrm; + extern const SwFrm *pRowCacheLastCellFrm; + ++//return the SwTabFrm (if any) that this SwTabFrm is a follow flow line for ++SwTabFrm* SwTabFrm::GetFollowFlowLineFor() ++{ ++ SwFlowFrm *pPrec = GetPrecede(); ++ if (pPrec && pPrec->GetFrm()->IsTabFrm()) ++ { ++ SwTabFrm *pPrevTabFrm = (SwTabFrm*)pPrec; ++ assert(this == pPrevTabFrm->GetFollow()); ++ if (pPrevTabFrm->HasFollowFlowLine() && pPrevTabFrm->GetFollow() == this) ++ return pPrevTabFrm; ++ } ++ return NULL; ++} ++ + SwTabFrm::~SwTabFrm() + { ++ //rhbz#907933, we are a follow flow line for something and have been ++ //deleted, remove ourself as a follow flowline ++ SwTabFrm* pFlowFrameFor = GetFollowFlowLineFor(); ++ if (pFlowFrameFor) ++ pFlowFrameFor->RemoveFollowFlowLine(); ++ + // There is some terrible code in fetab.cxx, that + // makes use of these global pointers. Obviously + // this code did not consider that a TabFrm can be +-- +1.8.1.2 + diff --git a/libreoffice.spec b/libreoffice.spec index 00303d5..63e3949 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -207,14 +207,8 @@ BuildRequires: tomcat-servlet-3.0-api BuildRequires: bsh %if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: hsqldb -%ifarch %{ix86} x86_64 s390 s390x -BuildRequires: java-devel >= 1:1.6.0 -%else -BuildRequires: java-devel %endif -%else BuildRequires: java-devel -%endif BuildRequires: jakarta-commons-httpclient %if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: junit @@ -265,6 +259,7 @@ Patch25: 0001-fdo-60491-scp2-always-package-emboleobj-library-on-n.patch Patch26: 0001-Resolves-rhbz-895196-sc-filter-float-a11y-parent-of-.patch Patch27: 0001-do-not-access-vector-elements-beyond-size-rhbz-84751.patch Patch28: 0001-rhbz-742780-Let-make-OPT_FLAGS-.-override-SDK-optimi.patch +Patch29: 0001-Resolves-rhbz-907933-crash-on-removing-second-last-p.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -1016,6 +1011,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch26 -p1 -b .rhbz-895196-sc-filter-float-a11y-parent-of-.patch %patch27 -p1 -b .do-not-access-vector-elements-beyond-size-rhbz-84751.patch %patch28 -p1 -b .rhbz-742780-Let-make-OPT_FLAGS-.-override-SDK-optimi.patch +%patch29 -p1 -b .rhbz-907933-crash-on-removing-second-last-p.patch # TODO: check this # these are horribly incomplete--empty translations and copied english @@ -2083,9 +2079,10 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog -* Wed Feb 20 2013 Eike Rathke - 1:4.0.0.3-8-UNBUILT +* Tue Feb 26 2013 Eike Rathke - 1:4.0.0.3-8 - do not access vector elements beyond size, rhbz#847519 related - Resolves: rhbz#742780 let make OPT_FLAGS=... override SDK flags +- Resolves: rhbz#907933 crash on removing second last para * Tue Feb 19 2013 Caolán McNamara - 1:4.0.0.3-7 - Resolves: rhbz#895196 sc filter float a11y parent of itself