Kaydet (Commit) ce583af6 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Avoid undefined left shift of negative value

Change-Id: If4e7f6fca3f6afbbeaa79e00706be08d674e2aeb
üst 6e7986a2
......@@ -79,12 +79,14 @@ Mapping& casefolding::getConditionalValue(const sal_Unicode* str, sal_Int32 pos,
Mapping& casefolding::getValue(const sal_Unicode* str, sal_Int32 pos, sal_Int32 len, Locale& aLocale, sal_uInt8 nMappingType) throw (RuntimeException)
{
static Mapping dummy = { 0, 1, { 0, 0, 0 } };
sal_Int16 address = CaseMappingIndex[str[pos] >> 8] << 8;
static Mapping dummy = { 0, 1, { 0, 0, 0 } };
sal_Int16 address = CaseMappingIndex[str[pos] >> 8];
dummy.map[0] = str[pos];
dummy.map[0] = str[pos];
if (address >= 0 && (CaseMappingValue[address += (str[pos] & 0xFF)].type & nMappingType)) {
if (address >= 0) {
address = (address << 8) + (str[pos] & 0xFF);
if (CaseMappingValue[address].type & nMappingType) {
sal_uInt8 type = CaseMappingValue[address].type;
if (type & ValueTypeNotValue) {
if (CaseMappingValue[address].value == 0)
......@@ -105,7 +107,8 @@ Mapping& casefolding::getValue(const sal_Unicode* str, sal_Int32 pos, sal_Int32
} else
dummy.map[0] = CaseMappingValue[address].value;
}
return dummy;
}
return dummy;
}
inline bool SAL_CALL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment