summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-08-03 21:09:34 +0200
committerIvan Timofeev <timofeev.i.s@gmail.com>2012-08-04 10:33:41 +0400
commiteb42588dcdfe27df5812f9f41b56022e0d5b4cf4 (patch)
treef85cd8224694af41f78751afb41ed9dc7371ecbe
parent60e797d27e390d801c908fec3f3c46aa01a94a20 (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.cxx103
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: */