Signed-off-by: Henri Verbeet hverbeet@codeweavers.com --- dlls/usp10/opentype.c | 9 ++------- dlls/usp10/usp10_internal.h | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/usp10/opentype.c b/dlls/usp10/opentype.c index 88272656038..b627aa2a9cd 100644 --- a/dlls/usp10/opentype.c +++ b/dlls/usp10/opentype.c @@ -2818,15 +2818,10 @@ static void usp10_language_add_feature_list(LoadedLanguage *language, char table
TRACE("table_type %#x, %u features.\n", table_type, count);
- if (!count) + if (!count || !usp10_array_reserve((void **)&language->features, &language->features_size, + language->feature_count + count, sizeof(*language->features))) return;
- if (!language->feature_count) - language->features = heap_alloc(count * sizeof(*language->features)); - else - language->features = HeapReAlloc(GetProcessHeap(), 0, language->features, - (language->feature_count + count) * sizeof(*language->features)); - for (i = 0; i < count; ++i) { const OT_FeatureRecord *record; diff --git a/dlls/usp10/usp10_internal.h b/dlls/usp10/usp10_internal.h index 99d7cd11b11..369a66dd58b 100644 --- a/dlls/usp10/usp10_internal.h +++ b/dlls/usp10/usp10_internal.h @@ -163,8 +163,9 @@ typedef struct { OPENTYPE_TAG tag; const void *table[USP10_LANGUAGE_TABLE_COUNT]; BOOL features_initialized; - INT feature_count; LoadedFeature *features; + SIZE_T features_size; + SIZE_T feature_count; } LoadedLanguage;
enum usp10_script_table
Signed-off-by: Aric Stewart aric@codeweavers.com
On 3/22/18 4:52 AM, Henri Verbeet wrote:
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
dlls/usp10/opentype.c | 9 ++------- dlls/usp10/usp10_internal.h | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/usp10/opentype.c b/dlls/usp10/opentype.c index 88272656038..b627aa2a9cd 100644 --- a/dlls/usp10/opentype.c +++ b/dlls/usp10/opentype.c @@ -2818,15 +2818,10 @@ static void usp10_language_add_feature_list(LoadedLanguage *language, char table
TRACE("table_type %#x, %u features.\n", table_type, count);
- if (!count)
- if (!count || !usp10_array_reserve((void **)&language->features, &language->features_size,
language->feature_count + count, sizeof(*language->features))) return;
- if (!language->feature_count)
language->features = heap_alloc(count * sizeof(*language->features));
- else
language->features = HeapReAlloc(GetProcessHeap(), 0, language->features,
(language->feature_count + count) * sizeof(*language->features));
for (i = 0; i < count; ++i) { const OT_FeatureRecord *record;
diff --git a/dlls/usp10/usp10_internal.h b/dlls/usp10/usp10_internal.h index 99d7cd11b11..369a66dd58b 100644 --- a/dlls/usp10/usp10_internal.h +++ b/dlls/usp10/usp10_internal.h @@ -163,8 +163,9 @@ typedef struct { OPENTYPE_TAG tag; const void *table[USP10_LANGUAGE_TABLE_COUNT]; BOOL features_initialized;
- INT feature_count; LoadedFeature *features;
SIZE_T features_size;
SIZE_T feature_count; } LoadedLanguage;
enum usp10_script_table