crashtesting: failure on tdf89191-1.odt

crash since

commit 664197d95becd516c3dac25a50439078ba61e051
Author: Justin Luth <justin_luth@sil.org>
Date:   Thu Sep 10 11:41:11 2015 +0300

    tdf#36117 .docx preserve page vertical alignment after RT

Change-Id: I225fa4dc0a7ea2eab6ef748f7c72bfad361257dd
diff --git a/sw/qa/core/exportdata/ooxml/pass/tdf89191-1.odt b/sw/qa/core/exportdata/ooxml/pass/tdf89191-1.odt
new file mode 100644
index 0000000..7ca047d
--- /dev/null
+++ b/sw/qa/core/exportdata/ooxml/pass/tdf89191-1.odt
Binary files differ
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 2372c75..dfb10e0 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1610,10 +1610,10 @@ public:
        return *mpItemSet;
    }

    const SwPageDesc& GetOldPageDesc();
    const SwPageDesc* GetOldPageDesc();
};

const SwPageDesc& SwStyleBase_Impl::GetOldPageDesc()
const SwPageDesc* SwStyleBase_Impl::GetOldPageDesc()
{
    if(!mpOldPageDesc)
    {
@@ -1633,8 +1633,7 @@ const SwPageDesc& SwStyleBase_Impl::GetOldPageDesc()
            }
        }
    }
    assert(mpOldPageDesc != 0);
    return *mpOldPageDesc;
    return mpOldPageDesc;
}

static void lcl_SetStyleProperty(const SfxItemPropertySimpleEntry& rEntry,
@@ -1988,8 +1987,9 @@ static void lcl_SetStyleProperty(const SfxItemPropertySimpleEntry& rEntry,
        {
            if( pDoc )
            {
                SwPageDesc* pPageDesc = pDoc->FindPageDesc( rBase.GetOldPageDesc().GetName() );
                if( pPageDesc )
                const SwPageDesc* pOldPageDesc = rBase.GetOldPageDesc();
                SwPageDesc* pPageDesc = pOldPageDesc ? pDoc->FindPageDesc(pOldPageDesc->GetName()) : nullptr;
                if (pPageDesc)
                {
                    drawing::TextVerticalAdjust nVA;
                    rValue >>= nVA;
@@ -3874,27 +3874,28 @@ uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
                        default: break;
                    }

                    const SwPageDesc& rDesc = aBase.GetOldPageDesc();
                    const SwPageDesc* pDesc = aBase.GetOldPageDesc();
                    assert(pDesc);
                    const SwFrameFormat* pFrameFormat = 0;
                    bool bShare = (bHeader && rDesc.IsHeaderShared()) || (!bHeader && rDesc.IsFooterShared());
                    bool bShareFirst = rDesc.IsFirstShared();
                    bool bShare = (bHeader && pDesc->IsHeaderShared()) || (!bHeader && pDesc->IsFooterShared());
                    bool bShareFirst = pDesc->IsFirstShared();
                    // TextLeft returns the left content if there is one,
                    // Text and TextRight return the master content.
                    // TextRight does the same as Text and is for
                    // comptability only.
                    if( bLeft && !bShare )
                    {
                        pFrameFormat = &rDesc.GetLeft();
                        pFrameFormat = &pDesc->GetLeft();
                    }
                    else if (bFirst && !bShareFirst)
                    {
                        pFrameFormat = &rDesc.GetFirstMaster();
                        pFrameFormat = &pDesc->GetFirstMaster();
                        // no need to make GetFirstLeft() accessible
                        // since it is always shared
                    }
                    else
                    {
                        pFrameFormat = &rDesc.GetMaster();
                        pFrameFormat = &pDesc->GetMaster();
                    }
                    const uno::Reference< text::XText > xRet =
                        lcl_makeHeaderFooter(nRes, bHeader, pFrameFormat);