diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-08-03 21:09:34 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-08-03 23:27:12 +0200 |
commit | 9e74e9f3c0931f34fb5421056851a06b83501ce9 (patch) | |
tree | 4c435fb6c7067bdbb6058817577bf4e7df710a2e /xmloff | |
parent | 216e13dd4b1f4599f10fd274f55d39cddcb49d74 (diff) |
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
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/style/PageMasterImportPropMapper.cxx | 103 |
1 files 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: */ |