[PATCH 5/5] usp10: Use usp10_array_reserve() in usp10_language_add_feature_list().
Aric Stewart
aric at codeweavers.com
Thu Mar 22 09:40:58 CDT 2018
Signed-off-by: Aric Stewart <aric at codeweavers.com>
On 3/22/18 4:52 AM, Henri Verbeet wrote:
> 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
>
More information about the wine-devel
mailing list