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 fdf122378d5dfa7160fa29eace026424b125e3e4
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

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

Reply via email to