From d1e140e0a9a3b6bc7dc002d691b1dd0c4badd2ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> Date: Fri, 12 Oct 2012 19:11:48 +0300 Subject: [PATCH] Add xstrdup() --- include/vlc_common.h | 8 ++++++++ src/config/core.c | 6 ++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/vlc_common.h b/include/vlc_common.h index db03b8160b880..2e6914bfa3975 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -889,6 +889,14 @@ static inline void *xcalloc (size_t n, size_t size) return ptr; } +static inline char *xstrdup (const char *str) +{ + char *ptr = strdup (str); + if (unlikely(ptr == NULL)) + abort (); + return ptr; +} + /***************************************************************************** * libvlc features *****************************************************************************/ diff --git a/src/config/core.c b/src/config/core.c index ff0636c2d7315..02fd0cea3e55a 100644 --- a/src/config/core.c +++ b/src/config/core.c @@ -414,12 +414,10 @@ ssize_t config_GetPszChoices (vlc_object_t *obj, const char *name, for (size_t i = 0; i < count; i++) { - vals[i] = strdup ((cfg->list.psz[i] != NULL) ? cfg->list.psz[i] : ""); + vals[i] = xstrdup ((cfg->list.psz[i] != NULL) ? cfg->list.psz[i] : ""); /* FIXME: use module_gettext() instead */ - txts[i] = strdup ((cfg->list_text[i] != NULL) + txts[i] = xstrdup ((cfg->list_text[i] != NULL) ? vlc_gettext (cfg->list_text[i]) : ""); - if (unlikely(vals[i] == NULL || txts[i] == NULL)) - abort (); } *values = vals;