diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-08-03 21:09:34 +0200 |
---|---|---|
committer | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-08-04 10:33:41 +0400 |
commit | eb42588dcdfe27df5812f9f41b56022e0d5b4cf4 (patch) | |
tree | f85cd8224694af41f78751afb41ed9dc7371ecbe | |
parent | 60e797d27e390d801c908fec3f3c46aa01a94a20 (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
(cherry picked from commit 9e74e9f3c0931f34fb5421056851a06b83501ce9)
Signed-off-by: Ivan Timofeev <timofeev.i.s@gmail.com>
-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: */ |