usp10: Check if corresponding headers are present before accessing their feature lists in _initialize_feature_cache.

Based on feedback from Henri, fixes regression from commit
63bcfa3354.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2017-03-31 16:50:54 +02:00 committed by Alexandre Julliard
parent 92651b9850
commit 4553871614
1 changed files with 6 additions and 2 deletions

View File

@ -2832,13 +2832,17 @@ static void _initialize_feature_cache(ScriptCache *psc, LoadedLanguage *language
if (language->features_initialized)
return;
feature_list = (const OT_FeatureList *)((const BYTE *)gsub_header + GET_BE_WORD(gsub_header->FeatureList));
if ((lang = language->gsub_table))
{
feature_list = (const OT_FeatureList *)((const BYTE *)gsub_header + GET_BE_WORD(gsub_header->FeatureList));
usp10_language_add_feature_list(language, FEATURE_GSUB_TABLE, lang, feature_list);
}
feature_list = (const OT_FeatureList *)((const BYTE *)gpos_header + GET_BE_WORD(gpos_header->FeatureList));
if ((lang = language->gpos_table))
{
feature_list = (const OT_FeatureList *)((const BYTE *)gpos_header + GET_BE_WORD(gpos_header->FeatureList));
usp10_language_add_feature_list(language, FEATURE_GPOS_TABLE, lang, feature_list);
}
language->features_initialized = TRUE;
}