Avoid unnecessary truncation to sal_uInt16

At least during CppunitTest_sw_odfimport, Clang's
-fsanitize=implicit-signed-integer-truncation warns (for nB) that an "implicit
conversion from type 'long' of value -181 (64-bit, signed) to type 'const
sal_uInt16' (aka 'const unsigned short') changed the value to 65355 (16-bit,
unsigned)".

Change-Id: I91bd1413fca248f5f05331980d8ac92753d366ab
Reviewed-on: https://gerrit.libreoffice.org/68665
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
Stephan Bergmann
2019-03-04 09:02:41 +01:00
parent 7a13fd8d6c
commit e457b1de6b

View File

@@ -386,8 +386,8 @@ void ImplFontMetricData::ImplInitFlags( const OutputDevice* pDev )
const OUString sFullstop( u'\x3001' ); // Fullwidth fullstop
tools::Rectangle aRect;
pDev->GetTextBoundRect( aRect, sFullstop );
const sal_uInt16 nH = rFont.GetFontSize().Height();
const sal_uInt16 nB = aRect.Left();
const auto nH = rFont.GetFontSize().Height();
const auto nB = aRect.Left();
// Use 18.75% as a threshold to define a centered fullwidth fullstop.
// In general, nB/nH < 5% for most Japanese fonts.
bCentered = nB > (((nH >> 1)+nH)>>3);