[Libreoffice-commits] core.git: lotuswordpro/source

Caolán McNamara caolanm at redhat.com
Sun Dec 13 09:50:58 PST 2015


 lotuswordpro/source/filter/lwpstory.cxx |   48 +++++++++++++++-----------------
 1 file changed, 23 insertions(+), 25 deletions(-)

New commits:
commit 012bdecfcd7094403516c98bd5231fe1ef6f7e9d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sun Dec 13 17:50:22 2015 +0000

    more lifecycle protection
    
    Change-Id: I158632de6898685e34d362cc274e959bb5c2e2d7

diff --git a/lotuswordpro/source/filter/lwpstory.cxx b/lotuswordpro/source/filter/lwpstory.cxx
index ed52730..da8ea33 100644
--- a/lotuswordpro/source/filter/lwpstory.cxx
+++ b/lotuswordpro/source/filter/lwpstory.cxx
@@ -301,21 +301,19 @@ void LwpStory::XFConvertFrameInCell(XFContentContainer* pCont)
     rtl::Reference<LwpVirtualLayout> xLayout(GetLayout(nullptr));
     while (xLayout.is())
     {
-        LwpVirtualLayout* pFrameLayout = dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get());
-        while(pFrameLayout)
+        rtl::Reference<LwpVirtualLayout> xFrameLayout(dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get()));
+        while (xFrameLayout.is())
         {
-
-            //if(pFrameLayout->IsAnchorCell())
-            if(pFrameLayout->IsAnchorCell() && pFrameLayout->HasContent())
+            if (xFrameLayout->IsAnchorCell() && xFrameLayout->HasContent())
             {
                 //get the first xfpara
                 rtl::Reference<XFContent> first(
                     pCont->FindFirstContent(enumXFContentPara));
                 XFContentContainer* pXFFirtPara = static_cast<XFContentContainer*>(first.get());
                 if(pXFFirtPara)
-                    pFrameLayout->XFConvert(pXFFirtPara);
+                    xFrameLayout->XFConvert(pXFFirtPara);
             }
-            pFrameLayout = dynamic_cast<LwpVirtualLayout*>(pFrameLayout->GetNext().obj().get());
+            xFrameLayout.set(dynamic_cast<LwpVirtualLayout*>(xFrameLayout->GetNext().obj().get()));
         }
         xLayout = GetLayout(xLayout.get());
     }
@@ -329,17 +327,17 @@ void LwpStory::XFConvertFrameInPage(XFContentContainer* pCont)
     rtl::Reference<LwpVirtualLayout> xLayout(GetLayout(nullptr));
     while (xLayout.is())
     {
-        LwpVirtualLayout* pFrameLayout = dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get());
-        while(pFrameLayout)
+        rtl::Reference<LwpVirtualLayout> xFrameLayout(dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get()));
+        while (xFrameLayout.is())
         {
-            if((pFrameLayout->IsAnchorPage()
-                &&(pFrameLayout->IsFrame()
-                      ||pFrameLayout->IsSuperTable()
-                      ||pFrameLayout->IsGroupHead())))
+            if((xFrameLayout->IsAnchorPage()
+                &&(xFrameLayout->IsFrame()
+                      || xFrameLayout->IsSuperTable()
+                      || xFrameLayout->IsGroupHead())))
             {
-                pFrameLayout->XFConvert(pCont);
+                xFrameLayout->XFConvert(pCont);
             }
-            pFrameLayout = dynamic_cast<LwpVirtualLayout*>(pFrameLayout->GetNext().obj().get());
+            xFrameLayout.set(dynamic_cast<LwpVirtualLayout*>(xFrameLayout->GetNext().obj().get()));
         }
         xLayout = GetLayout(xLayout.get());
     }
@@ -352,14 +350,14 @@ void LwpStory::XFConvertFrameInFrame(XFContentContainer* pCont)
     rtl::Reference<LwpVirtualLayout> xLayout(GetLayout(nullptr));
     while (xLayout.get())
     {
-        LwpVirtualLayout* pFrameLayout = dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get());
-        while(pFrameLayout)
+        rtl::Reference<LwpVirtualLayout> xFrameLayout(dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get()));
+        while (xFrameLayout.is())
         {
-            if(pFrameLayout->IsAnchorFrame())
+            if (xFrameLayout->IsAnchorFrame())
             {
-                pFrameLayout->XFConvert(pCont);
+                xFrameLayout->XFConvert(pCont);
             }
-            pFrameLayout = dynamic_cast<LwpVirtualLayout*>(pFrameLayout->GetNext().obj().get());
+            xFrameLayout.set(dynamic_cast<LwpVirtualLayout*>(xFrameLayout->GetNext().obj().get()));
         }
         xLayout = GetLayout(xLayout.get());
     }
@@ -372,19 +370,19 @@ void LwpStory::XFConvertFrameInHeaderFooter(XFContentContainer* pCont)
     rtl::Reference<LwpVirtualLayout> xLayout(GetLayout(nullptr));
     while (xLayout.is())
     {
-        LwpVirtualLayout* pFrameLayout = dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get());
-        while(pFrameLayout)
+        rtl::Reference<LwpVirtualLayout> xFrameLayout(dynamic_cast<LwpVirtualLayout*>(xLayout->GetChildHead().obj().get()));
+        while (xFrameLayout.is())
         {
-            if(pFrameLayout->IsAnchorPage() && (xLayout->IsHeader() || xLayout->IsFooter()))
+            if (xFrameLayout->IsAnchorPage() && (xLayout->IsHeader() || xLayout->IsFooter()))
             {
                 //The frame must be included by <text:p>
                 rtl::Reference<XFContent> first(
                     pCont->FindFirstContent(enumXFContentPara));
                 XFContentContainer* pXFFirtPara = static_cast<XFContentContainer*>(first.get());
                 if(pXFFirtPara)
-                    pFrameLayout->XFConvert(pXFFirtPara);
+                    xFrameLayout->XFConvert(pXFFirtPara);
             }
-            pFrameLayout = dynamic_cast<LwpVirtualLayout*>(pFrameLayout->GetNext().obj().get());
+            xFrameLayout.set(dynamic_cast<LwpVirtualLayout*>(xFrameLayout->GetNext().obj().get()));
         }
         xLayout = GetLayout(xLayout.get());
     }


More information about the Libreoffice-commits mailing list