diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-01-15 16:29:47 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-01-15 16:32:22 +0000 |
commit | 5cd7c8906150b94c224ab9bc9f850684198c7f04 (patch) | |
tree | 9d716977c232c67ae9830476d0552efbfa1ed7c5 /svtools/source/misc | |
parent | 932e916a9c47071eec9eaf43eff9718f4be2d9bf (diff) |
Resolves: fdo#37449 apparent access into empty codepage bitset
Change-Id: I2efc3ea10cd4313eaa1894fdfbffd113a125e2ba
Diffstat (limited to 'svtools/source/misc')
-rw-r--r-- | svtools/source/misc/sampletext.cxx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/svtools/source/misc/sampletext.cxx b/svtools/source/misc/sampletext.cxx index 8bc9bb5add83..42be4cad5173 100644 --- a/svtools/source/misc/sampletext.cxx +++ b/svtools/source/misc/sampletext.cxx @@ -634,6 +634,11 @@ namespace #if OSL_DEBUG_LEVEL > 2 void lcl_dump_unicode_coverage(const boost::dynamic_bitset<sal_uInt32> &rIn) { + if (rIn.none()) + { + fprintf(stderr, "<NONE>\n"); + return; + } if (rIn[vcl::UnicodeCoverage::BASIC_LATIN]) fprintf(stderr, "BASIC_LATIN\n"); if (rIn[vcl::UnicodeCoverage::LATIN_1_SUPPLEMENT]) @@ -894,6 +899,11 @@ namespace void lcl_dump_codepage_coverage(const boost::dynamic_bitset<sal_uInt32> &rIn) { + if (rIn.none()) + { + fprintf(stderr, "<NONE>\n"); + return; + } if (rIn[vcl::CodePageCoverage::CP1252]) fprintf(stderr, "CP1252\n"); if (rIn[vcl::CodePageCoverage::CP1250]) @@ -1065,7 +1075,7 @@ namespace aMasked.set(vcl::UnicodeCoverage::PHAGS_PA, false); //So, possibly a CJK font - if (!aMasked.count()) + if (!aMasked.count() && !rFontCapabilities.maCodePageRange.empty()) { boost::dynamic_bitset<sal_uInt32> aCJKCodePageMask(vcl::CodePageCoverage::MAX_CP_ENUM); aCJKCodePageMask.set(vcl::CodePageCoverage::CP932); @@ -1517,8 +1527,7 @@ rtl::OUString makeRepresentativeTextForFont(sal_Int16 nScriptType, const Font &r if (nScriptType != com::sun::star::i18n::ScriptType::ASIAN) { aFontCapabilities.maUnicodeRange &= getCJKMask(); - aFontCapabilities.maCodePageRange = - boost::dynamic_bitset<sal_uInt32>(aFontCapabilities.maCodePageRange.size()); + aFontCapabilities.maCodePageRange.clear(); } if (nScriptType != com::sun::star::i18n::ScriptType::LATIN) aFontCapabilities.maUnicodeRange &= getLatinMask(); |