[Libreoffice-commits] core.git: sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sun Jan 13 21:12:47 UTC 2019
sw/source/uibase/uno/unomod.cxx | 61 +++++++++++++++++-----------------------
1 file changed, 27 insertions(+), 34 deletions(-)
New commits:
commit c4747e1c71fc7a25bcb6321891a719e527c3f572
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Jan 13 20:09:21 2019 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sun Jan 13 22:12:25 2019 +0100
ofz#12500 ubsan error
Change-Id: I2520f77116be418a2cb8bcf3731894dc3dd4fb56
Reviewed-on: https://gerrit.libreoffice.org/66272
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/uibase/uno/unomod.cxx b/sw/source/uibase/uno/unomod.cxx
index a7a60ad2faec..54c2c3a50940 100644
--- a/sw/source/uibase/uno/unomod.cxx
+++ b/sw/source/uibase/uno/unomod.cxx
@@ -275,82 +275,79 @@ void SwXPrintSettings::_preSetValues ()
}
}
-void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
+namespace
{
- bool bVal;
+ bool tryBoolAccess(const uno::Any &rValue)
+ {
+ const auto xPrSet = o3tl::tryAccess<bool>(rValue);
+ if (!xPrSet)
+ throw lang::IllegalArgumentException();
+ return *xPrSet;
+ }
+}
+void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
+{
switch( rInfo.mnHandle )
{
case HANDLE_PRINTSET_LEFT_PAGES:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintLeftPage(bVal);
+ mpPrtOpt->SetPrintLeftPage(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_RIGHT_PAGES:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintRightPage(bVal);
+ mpPrtOpt->SetPrintRightPage(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_REVERSED:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintReverse(bVal);
+ mpPrtOpt->SetPrintReverse(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_PROSPECT:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintProspect(bVal);
+ mpPrtOpt->SetPrintProspect(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_GRAPHICS:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintGraphic(bVal);
+ mpPrtOpt->SetPrintGraphic(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_TABLES:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintTable(bVal);
+ mpPrtOpt->SetPrintTable(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_DRAWINGS:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintDraw(bVal);
+ mpPrtOpt->SetPrintDraw(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_CONTROLS:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintControl(bVal);
+ mpPrtOpt->SetPrintControl(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_PAGE_BACKGROUND:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintPageBackground(bVal);
+ mpPrtOpt->SetPrintPageBackground(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_BLACK_FONTS:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintBlackFont(bVal);
+ mpPrtOpt->SetPrintBlackFont(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_SINGLE_JOBS:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintSingleJobs(bVal);
+ mpPrtOpt->SetPrintSingleJobs(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_PAPER_FROM_SETUP:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPaperFromSetup(bVal);
+ mpPrtOpt->SetPaperFromSetup(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_ANNOTATION_MODE:
@@ -366,8 +363,7 @@ void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo,
break;
case HANDLE_PRINTSET_EMPTY_PAGES:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintEmptyPages(bVal);
+ mpPrtOpt->SetPrintEmptyPages(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_FAX_NAME:
@@ -381,20 +377,17 @@ void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo,
break;
case HANDLE_PRINTSET_PROSPECT_RTL:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintProspect_RTL(bVal);
+ mpPrtOpt->SetPrintProspect_RTL(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_PLACEHOLDER:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintTextPlaceholder(bVal);
+ mpPrtOpt->SetPrintTextPlaceholder(tryBoolAccess(rValue));
}
break;
case HANDLE_PRINTSET_HIDDEN_TEXT:
{
- bVal = *o3tl::tryAccess<bool>(rValue);
- mpPrtOpt->SetPrintHiddenText(bVal);
+ mpPrtOpt->SetPrintHiddenText(tryBoolAccess(rValue));
}
break;
default:
More information about the Libreoffice-commits
mailing list