lotuswordpro/source/filter/lwpdoc.cxx | 6 +++--- lotuswordpro/source/filter/lwpdoc.hxx | 2 +- lotuswordpro/source/filter/lwplayout.cxx | 14 +++++++------- lotuswordpro/source/filter/lwplayout.hxx | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-)
New commits: commit 33b5bcc9e77b27cedfdeee61e11956bec6960cce Author: Caolán McNamara <caol...@redhat.com> Date: Sun Dec 13 15:56:01 2015 +0000 deploy references to keep layout alive long enough Change-Id: Icac22d3c179eca42e01a724f7592ee4b34dd45e3 (cherry picked from commit fdf122378d5dfa7160fa29eace026424b125e3e4) diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx index d0be396..d120d9c 100644 --- a/lotuswordpro/source/filter/lwpdoc.cxx +++ b/lotuswordpro/source/filter/lwpdoc.cxx @@ -646,7 +646,7 @@ LwpDocument* LwpDocument::GetPreviousDivision() LwpDocument *pLastDoc = pRoot ? pRoot->GetLastDivisionWithContents() : nullptr; while (pLastDoc) { - if(pLastDoc->GetEnSuperTableLayout()) + if (pLastDoc->GetEnSuperTableLayout().is()) return pLastDoc; pLastDoc = pLastDoc->GetPreviousDivisionWithContents(); } @@ -656,14 +656,14 @@ LwpDocument* LwpDocument::GetPreviousDivision() /** * @descr Get endnote supertable layout, every division has only one endnote supertable layout. */ - LwpVirtualLayout* LwpDocument::GetEnSuperTableLayout() +rtl::Reference<LwpVirtualLayout> LwpDocument::GetEnSuperTableLayout() { LwpHeadLayout* pHeadLayout = dynamic_cast<LwpHeadLayout*>(GetFoundry()->GetLayout().obj().get()); if(pHeadLayout) { return pHeadLayout->FindEnSuperTableLayout(); } - return nullptr; + return rtl::Reference<LwpVirtualLayout>(); } /** diff --git a/lotuswordpro/source/filter/lwpdoc.hxx b/lotuswordpro/source/filter/lwpdoc.hxx index 17ab35d..8b1bdef 100644 --- a/lotuswordpro/source/filter/lwpdoc.hxx +++ b/lotuswordpro/source/filter/lwpdoc.hxx @@ -159,7 +159,7 @@ public: LwpDocument* GetLastDivision(); LwpDocument* GetFirstDivision(); - LwpVirtualLayout* GetEnSuperTableLayout(); + rtl::Reference<LwpVirtualLayout> GetEnSuperTableLayout(); bool GetNumberOfPages(LwpDocument* pEndDivision, sal_uInt16& nCount); sal_uInt16 GetNumberOfPagesBefore(); diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx index 7a7e9c04b..27603d5 100644 --- a/lotuswordpro/source/filter/lwplayout.cxx +++ b/lotuswordpro/source/filter/lwplayout.cxx @@ -499,18 +499,18 @@ void LwpHeadLayout::RegisterStyle() * @descr find endnote supertable layout from the child layout list. Suppose that there is only one endnote supertablelayout in one division * @return pointer to endnote supertable layout */ -LwpVirtualLayout* LwpHeadLayout::FindEnSuperTableLayout() +rtl::Reference<LwpVirtualLayout> LwpHeadLayout::FindEnSuperTableLayout() { - LwpVirtualLayout* pLayout = dynamic_cast<LwpVirtualLayout*>(GetChildHead().obj().get()); - while(pLayout) + rtl::Reference<LwpVirtualLayout> xLayout(dynamic_cast<LwpVirtualLayout*>(GetChildHead().obj().get())); + while (xLayout.get()) { - if(pLayout->GetLayoutType() == LWP_ENDNOTE_SUPERTABLE_LAYOUT) + if (xLayout->GetLayoutType() == LWP_ENDNOTE_SUPERTABLE_LAYOUT) { - return pLayout; + return xLayout; } - pLayout = dynamic_cast<LwpVirtualLayout*>(pLayout->GetNext().obj().get()); + xLayout.set(dynamic_cast<LwpVirtualLayout*>(xLayout->GetNext().obj().get())); } - return nullptr; + return rtl::Reference<LwpVirtualLayout>(); } LwpLayoutStyle::LwpLayoutStyle() diff --git a/lotuswordpro/source/filter/lwplayout.hxx b/lotuswordpro/source/filter/lwplayout.hxx index 053f6be..9221029 100644 --- a/lotuswordpro/source/filter/lwplayout.hxx +++ b/lotuswordpro/source/filter/lwplayout.hxx @@ -266,7 +266,7 @@ public: LwpHeadLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm); virtual ~LwpHeadLayout(){} void RegisterStyle() override; - LwpVirtualLayout* FindEnSuperTableLayout(); + rtl::Reference<LwpVirtualLayout> FindEnSuperTableLayout(); protected: void Read() override; virtual LWP_LAYOUT_TYPE GetLayoutType () override { return LWP_HEAD_LAYOUT;}
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits