summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2019-07-22 11:12:47 +0200
committerAron Budea <aron.budea@collabora.com>2019-08-01 05:24:44 +0200
commit142962c13cf95b52f9e6a53af7d23de516b15303 (patch)
treee9583a1486949551c90f2892dd0a7e42fe54ce49
parente3b29128fc23a2168cda642b559112c6c73af6ff (diff)
MSForms: DOCX filter: fix crash when the date field is inside a shape
Change-Id: Ida6ff48e6e743e41dd793e31c11065f870e8959b Reviewed-on: https://gerrit.libreoffice.org/76117 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit d163b651dc3dd017cdb3327d87a7cf88003238e9) Reviewed-on: https://gerrit.libreoffice.org/76206 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Aron Budea <aron.budea@collabora.com>
-rw-r--r--sw/qa/extras/ooxmlexport/data/date_field_in_shape.docxbin0 -> 21746 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx9
3 files changed, 10 insertions, 4 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/date_field_in_shape.docx b/sw/qa/extras/ooxmlexport/data/date_field_in_shape.docx
new file mode 100644
index 000000000000..ff3c637c34f3
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/date_field_in_shape.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
index 458c91652873..1b30405018f0 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
@@ -705,6 +705,11 @@ DECLARE_OOXMLEXPORT_TEST( testTdf66401, "tdf66401.docx")
}
}
+DECLARE_OOXMLEXPORT_TEST( testDateFieldInShape, "date_field_in_shape.docx" )
+{
+ // This was crashed on export.
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 936523501232..253662695a1f 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -3394,11 +3394,12 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len)
m_pImpl->m_pSdtHelper->getLocale().truncate();
return;
}
- if((m_pImpl->hasTableManager() && m_pImpl->getTableManager().isInTable()) ||
- m_pImpl->m_nTableDepth > 0)
+ bool bIsInTable = (m_pImpl->hasTableManager() && m_pImpl->getTableManager().isInTable()) ||
+ (m_pImpl->m_nTableDepth > 0);
+ if(bIsInTable || m_pImpl->IsInShape())
{
- // Inside a table we need to import date field earlier
- m_pImpl->m_pSdtHelper->createDateContentControl(true);
+ // Inside an object we need to import date field earlier
+ m_pImpl->m_pSdtHelper->createDateContentControl(bIsInTable);
}
}