From 9e74e9f3c0931f34fb5421056851a06b83501ce9 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Fri, 3 Aug 2012 21:09:34 +0200 Subject: fdo#38056: fix XMLTextImportPropertyMapper regression: The invalidation introduced in 7f9928bfa561ccb6ed4e2baacc7d6960bc1ce231 is unfortunately in the wrong place; the pAllFoo actually point at vector elements, and so they must not be dereferenced after new elements are added to the vector, so move the invalidation up a bit. Change-Id: I244d1d5cfd40469ff6d2c081e057355460d34cf4 --- xmloff/source/style/PageMasterImportPropMapper.cxx | 103 +++++++++++---------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/xmloff/source/style/PageMasterImportPropMapper.cxx b/xmloff/source/style/PageMasterImportPropMapper.cxx index 005c732351ca..0cacf028d491 100644 --- a/xmloff/source/style/PageMasterImportPropMapper.cxx +++ b/xmloff/source/style/PageMasterImportPropMapper.cxx @@ -353,6 +353,58 @@ void PageMasterImportPropertyMapper::finished(::std::vector< XMLPropertyState >& aAny.setValue( &bValue, ::getBooleanCppuType() ); pFooterDynamic = new XMLPropertyState(pFooterMinHeight->mnIndex + 1, aAny); } + + // fdo#38056: nerf the various AllFoo properties so they do not override + // the individual Foo properties later on + if (pAllPaddingProperty) + { + pAllPaddingProperty->mnIndex = -1; + } + if (pAllBorderProperty) + { + pAllBorderProperty->mnIndex = -1; + } + if (pAllBorderWidthProperty) + { + pAllBorderWidthProperty->mnIndex = -1; + } + if (pAllHeaderPaddingProperty) + { + pAllHeaderPaddingProperty->mnIndex = -1; + } + if (pAllHeaderBorderProperty) + { + pAllHeaderBorderProperty->mnIndex = -1; + } + if (pAllHeaderBorderWidthProperty) + { + pAllHeaderBorderWidthProperty->mnIndex = -1; + } + if (pAllFooterPaddingProperty) + { + pAllFooterPaddingProperty->mnIndex = -1; + } + if (pAllFooterBorderProperty) + { + pAllFooterBorderProperty->mnIndex = -1; + } + if (pAllFooterBorderWidthProperty) + { + pAllFooterBorderWidthProperty->mnIndex = -1; + } + if (pAllMarginProperty) + { + pAllMarginProperty->mnIndex = -1; + } + if (pAllHeaderMarginProperty) + { + pAllHeaderMarginProperty->mnIndex = -1; + } + if (pAllFooterMarginProperty) + { + pAllFooterMarginProperty->mnIndex = -1; + } + for (sal_uInt16 i = 0; i < 4; i++) { if (pNewMargins[i].get()) @@ -408,57 +460,6 @@ void PageMasterImportPropertyMapper::finished(::std::vector< XMLPropertyState >& rProperties.push_back(*pFooterDynamic); delete pFooterDynamic; } - - // fdo#38056: nerf the various AllFoo properties so they do not override - // the individual Foo properties later on - if (pAllPaddingProperty) - { - pAllPaddingProperty->mnIndex = -1; - } - if (pAllBorderProperty) - { - pAllBorderProperty->mnIndex = -1; - } - if (pAllBorderWidthProperty) - { - pAllBorderWidthProperty->mnIndex = -1; - } - if (pAllHeaderPaddingProperty) - { - pAllHeaderPaddingProperty->mnIndex = -1; - } - if (pAllHeaderBorderProperty) - { - pAllHeaderBorderProperty->mnIndex = -1; - } - if (pAllHeaderBorderWidthProperty) - { - pAllHeaderBorderWidthProperty->mnIndex = -1; - } - if (pAllFooterPaddingProperty) - { - pAllFooterPaddingProperty->mnIndex = -1; - } - if (pAllFooterBorderProperty) - { - pAllFooterBorderProperty->mnIndex = -1; - } - if (pAllFooterBorderWidthProperty) - { - pAllFooterBorderWidthProperty->mnIndex = -1; - } - if (pAllMarginProperty) - { - pAllMarginProperty->mnIndex = -1; - } - if (pAllHeaderMarginProperty) - { - pAllHeaderMarginProperty->mnIndex = -1; - } - if (pAllFooterMarginProperty) - { - pAllFooterMarginProperty->mnIndex = -1; - } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3