From ad849f4bdad957dae30fa17975d9aac3ab5e8299 Mon Sep 17 00:00:00 2001 From: Takeshi Abe Date: Sat, 11 Feb 2017 19:06:51 +0900 Subject: [PATCH] starmath: Make stricter assertion to prevent out of range Change-Id: I3ce0712e5095ade35628bad026a91a11dc6b9967 Reviewed-on: https://gerrit.libreoffice.org/34146 Tested-by: Jenkins Reviewed-by: Takeshi Abe --- starmath/source/format.cxx | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/starmath/source/format.cxx b/starmath/source/format.cxx index ed0adca219b7..b169d24cc090 100644 --- a/starmath/source/format.cxx +++ b/starmath/source/format.cxx @@ -21,6 +21,7 @@ #include #include #include "format.hxx" +#include // Latin default-fonts @@ -68,28 +69,20 @@ static const DefaultFontType aCTLDefFnts[FNT_END] = OUString GetDefaultFontName( LanguageType nLang, sal_uInt16 nIdent ) { - OSL_ENSURE( /*FNT_BEGIN <= nIdent &&*/ nIdent <= FNT_END, - "index out opd range" ); - - if (FNT_MATH == nIdent) - return OUString(FNTNAME_MATH); - else + assert(nIdent < FNT_END); + const DefaultFontType *pTable; + switch ( SvtLanguageOptions::GetScriptTypeOfLanguage( nLang ) ) { - const DefaultFontType *pTable; - switch ( SvtLanguageOptions::GetScriptTypeOfLanguage( nLang ) ) - { - case SvtScriptType::LATIN : pTable = aLatinDefFnts; break; - case SvtScriptType::ASIAN : pTable = aCJKDefFnts; break; - case SvtScriptType::COMPLEX : pTable = aCTLDefFnts; break; - default : - pTable = aLatinDefFnts; - SAL_WARN("starmath", "unknown script-type"); - } - - return OutputDevice::GetDefaultFont( - pTable[ nIdent ], nLang, - GetDefaultFontFlags::OnlyOne ).GetFamilyName(); + case SvtScriptType::LATIN : pTable = aLatinDefFnts; break; + case SvtScriptType::ASIAN : pTable = aCJKDefFnts; break; + case SvtScriptType::COMPLEX : pTable = aCTLDefFnts; break; + default : + pTable = aLatinDefFnts; + SAL_WARN("starmath", "unknown script-type"); } + + return OutputDevice::GetDefaultFont(pTable[ nIdent ], nLang, + GetDefaultFontFlags::OnlyOne ).GetFamilyName(); }