[PATCH 5/5] usp10: Use usp10_array_reserve() in usp10_language_add_feature_list().
Henri Verbeet
hverbeet at codeweavers.com
Thu Mar 22 04:52:47 CDT 2018
Signed-off-by: Henri Verbeet <hverbeet at 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
--
2.11.0
More information about the wine-devel
mailing list