diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2018-08-15 16:48:09 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2018-08-15 21:20:26 +0200 |
commit | 0d227c96e11d7d03829144183bc66d229e059a4b (patch) | |
tree | 5fcf459ec3d17e8630dc391cf4e4ced993ac2212 /sw/inc | |
parent | 6ede90a790ce08330af58f81474c103ee1ca438f (diff) |
SvxNumberFormat::nAbsLSpace should have a larger type
...as is seen when executing CppunitTest_sd_filters_test with Clang's new
-fsanitize=implicit-conversion (see below). The next larger natural choice
after short is sal_Int32, and some of the code calling GetAbsLSpace actually
already supported the value to be as wide (but not wider than) sal_Int32; code
calling GetAbsLSpace that expected the value to be no wider than short has
either been adapted or at least been marked with a TODO. (Other choices could
have been sal_Int64 or long.)
Some dependent function's parameter types have also been changed accordingly.
> Testing file:///home/sbergman/lo/core/sd/qa/unit/data/ppt/pass/hang-10.ppt:
[...]
> filter/source/msfilter/svdfppt.cxx:3792:33: runtime error: implicit conversion from type 'sal_uInt32' (aka 'unsigned int') of value 144780 (32-bit, unsigned) to type 'short' changed the value to 13708 (16-bit, signed)
> #0 in PPTNumberFormatCreator::ImplGetNumberFormat(SdrPowerPointImport const&, SvxNumberFormat&) at filter/source/msfilter/svdfppt.cxx:3792:33 (instdir/program/libmsfilterlo.so +0x7992cc)
> #1 in PPTNumberFormatCreator::GetNumberFormat(SdrPowerPointImport const&, SvxNumberFormat&, unsigned int, PPTParaLevel const&, PPTCharLevel const&, TSS_Type) at filter/source/msfilter/svdfppt.cxx:3674:5 (instdir/program/libmsfilterlo.so +0x797c6d)
> #2 in PPTStyleSheet::PPTStyleSheet(DffRecordHeader const&, SvStream&, SdrPowerPointImport&, PPTTextParagraphStyleAtomInterpreter const&, PPTTextSpecInfo const&) at filter/source/msfilter/svdfppt.cxx:4395:13 (instdir/program/libmsfilterlo.so +0x7ac38d)
> #3 in SdrPowerPointImport::SdrPowerPointImport(PowerPointImportParam&, rtl::OUString const&) at filter/source/msfilter/svdfppt.cxx:1618:59 (instdir/program/libmsfilterlo.so +0x74762f)
> #4 in ImplSdPPTImport::ImplSdPPTImport(SdDrawDocument*, SotStorage&, SfxMedium&, PowerPointImportParam&) at sd/source/filter/ppt/pptin.cxx:175:7 (instdir/program/libsdfiltlo.so +0x5f2be8)
> #5 in SdPPTImport::SdPPTImport(SdDrawDocument*, SvStream&, SotStorage&, SfxMedium&) at sd/source/filter/ppt/pptin.cxx:162:23 (instdir/program/libsdfiltlo.so +0x5ce2bb)
> #6 in ImportPPT at sd/source/filter/ppt/pptin.cxx:2760:47 (instdir/program/libsdfiltlo.so +0x617c79)
> #7 in SdPPTFilter::Import() at sd/source/filter/sdpptwrp.cxx:106:32 (instdir/program/libsdlo.so +0x2878413)
> #8 in sd::DrawDocShell::ConvertFrom(SfxMedium&) at sd/source/ui/docshell/docshel4.cxx:474:46 (instdir/program/libsdlo.so +0x2e165bc)
> #9 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:786:23 (instdir/program/libsfxlo.so +0x2c8cb12)
> #10 in SdFiltersTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at sd/qa/unit/filters-test.cxx:75:31 (workdir/LinkTarget/CppunitTest/libtest_sd_filters_test.so +0x19771)
> #11 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:130:20 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x5724c)
> #12 in test::FiltersTest::testDir(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:155:5 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x57ec9)
> #13 in SdFiltersTest::testCVEs() at sd/qa/unit/filters-test.cxx:83:5 (workdir/LinkTarget/CppunitTest/libtest_sd_filters_test.so +0x19d6d)
Change-Id: Ifa298a51bb62b7cbee9249b8289963f3427721f5
Reviewed-on: https://gerrit.libreoffice.org/59116
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sw/inc')
-rw-r--r-- | sw/inc/editsh.hxx | 2 | ||||
-rw-r--r-- | sw/inc/numrule.hxx | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx index 05c6c7962c04..b0692592213a 100644 --- a/sw/inc/editsh.hxx +++ b/sw/inc/editsh.hxx @@ -529,7 +529,7 @@ public: // #i90078# /// Remove unused default parameter <nLevel> and <bRelative>. // Adjust method name and parameter name - void ChangeIndentOfAllListLevels( short nDiff ); + void ChangeIndentOfAllListLevels( sal_Int32 nDiff ); // Adjust method name void SetIndent(short nIndent, const SwPosition & rPos); bool IsFirstOfNumRuleAtCursorPos() const; diff --git a/sw/inc/numrule.hxx b/sw/inc/numrule.hxx index 7d9da21ad0f7..35d304dff012 100644 --- a/sw/inc/numrule.hxx +++ b/sw/inc/numrule.hxx @@ -254,7 +254,7 @@ public: SvxNumRule MakeSvxNumRule() const; /// change indent of all list levels by given difference - void ChangeIndent( const short nDiff ); + void ChangeIndent( const sal_Int32 nDiff ); /// set indent of certain list level to given value void SetIndent( const short nNewIndent, const sal_uInt16 nListLevel ); |