[PATCH v2] dwrite: Do not segfault when there are no typographic features to return.
Nikolay Sivov
nsivov at codeweavers.com
Wed Mar 3 07:42:57 CST 2021
On 3/3/21 4:35 PM, Giovanni Mascellani wrote:
> Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
> ---
> dlls/dwrite/shape.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/dlls/dwrite/shape.c b/dlls/dwrite/shape.c
> index 6428bf6ceb0..809e66ebedb 100644
> --- a/dlls/dwrite/shape.c
> +++ b/dlls/dwrite/shape.c
> @@ -372,6 +372,14 @@ HRESULT shape_get_typographic_features(struct scriptshaping_context *context, co
> shape_get_script_lang_index(context, scripts, MS_GPOS_TAG, &script_index, &language_index);
> opentype_get_typographic_features(&context->cache->gpos, script_index, language_index, &t);
>
> + /* Return immediately if there are not features, because the
> + duplicate removal algorithm doesn't like an empty array. */
> + if (t.count == 0)
> + {
> + heap_free(t.tags);
> + return S_OK;
> + }
> +
> /* Sort and remove duplicates. */
> qsort(t.tags, t.count, sizeof(*t.tags), tag_array_sorting_compare);
>
Out argument is not set; 'tags' would be null if count is 0; comment is
unnecessary, it's pretty obvious what's going on.
More information about the wine-devel
mailing list