diff options
author | wm4 <wm4@nowhere> | 2015-08-28 12:52:31 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-08-28 14:06:52 +0200 |
commit | 2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef (patch) | |
tree | 993e0bad294f3079597e219127efe5f58f5f0059 /libass | |
parent | 5c7e811cce10489d8762ee51eb3d390dfc33cbef (diff) | |
download | libass-2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef.tar.bz2 libass-2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef.tar.xz |
fontselect: deal with potential ASS_FontProvider.subst_font failure
Don't assume it sets all fields. If it doesn't return any font names at
all, go with the default.
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_fontselect.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c index 384054d..2653ed7 100644 --- a/libass/ass_fontselect.c +++ b/libass/ass_fontselect.c @@ -474,7 +474,7 @@ static char *select_font(ASS_FontSelector *priv, ASS_Library *library, char *family_trim = strdup_trimmed(family); ASS_FontProvider *default_provider = priv->default_provider; ASS_FontInfo *font_infos = priv->font_infos; - ASS_FontProviderMetaData meta; + ASS_FontProviderMetaData meta = {0}; if (family_trim == NULL) return NULL; @@ -491,7 +491,8 @@ static char *select_font(ASS_FontSelector *priv, ASS_Library *library, default_provider->funcs.subst_font(default_provider->priv, family_trim, &meta); req.n_fullname = meta.n_fullname; req.fullnames = meta.fullnames; - } else { + } + if (!req.n_fullname) { req.n_fullname = 1; req.fullnames = &family_trim; } |