summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2024-04-28 13:16:59 +0200
committerJulien Nabet <serval2412@yahoo.fr>2024-04-28 20:10:30 +0200
commit45d2d90d2354a6a32297cde52c0041915499b19b (patch)
tree7d059495e725dcd7d3892ca86eb6d3b72f7ba10f
parent14ed2224269426ab68b6591c178c8a0d636e51a8 (diff)
tdf#160827: fix crash when retrieving _MarkAsFinal value (docx) (take 2)
Change-Id: I3f2ad56a205877be54b0dbfe361b76db3436f5ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166798 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
-rw-r--r--sfx2/source/doc/objstor.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 720e939e3885..e7538813cfdd 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -2741,7 +2741,11 @@ bool SfxObjectShell::ImportFrom(SfxMedium& rMedium,
uno::Reference<beans::XPropertySetInfo> xPropertySetInfo = xPropertySet->getPropertySetInfo();
if (xPropertySetInfo.is() && xPropertySetInfo->hasPropertyByName("_MarkAsFinal"))
{
- if (xPropertySet->getPropertyValue("_MarkAsFinal").get<bool>())
+ Any anyMarkAsFinal = xPropertySet->getPropertyValue("_MarkAsFinal");
+ if (
+ ( (anyMarkAsFinal.getValueType() == cppu::UnoType<bool>::get()) && (anyMarkAsFinal.get<bool>()) ) ||
+ ( (anyMarkAsFinal.getValueType() == cppu::UnoType<OUString>::get()) && (anyMarkAsFinal.get<OUString>() == "true") )
+ )
{
uno::Reference< lang::XMultiServiceFactory > xFactory(GetModel(), uno::UNO_QUERY);
uno::Reference< beans::XPropertySet > xSettings(xFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);