/* Copy the lang_str instance */
lang_str_t *lang_str_copy ( const lang_str_t *ls )
{
- lang_str_t *ret = lang_str_create();
+ lang_str_t *ret;
lang_str_ele_t *e;
+ if (ls == NULL)
+ return NULL;
+ ret = lang_str_create();
RB_FOREACH(e, ls, link)
lang_str_add(ret, e->str, e->lang);
return ret;
int save = 0;
lang_str_ele_t *e, *ae;
- if (!str) return 0;
+ if (!ls || !str) return 0;
/* Get proper code */
if (!lang) lang = lang_code_preferred();
( htsmsg_t *m, const char *f, const char *str, const char *lang )
{
lang_str_t *l = lang_str_create();
- lang_str_add(l, str, lang);
- lang_str_serialize(l, m, f);
- lang_str_destroy(l);
+ if (l) {
+ lang_str_add(l, str, lang);
+ lang_str_serialize(l, m, f);
+ lang_str_destroy(l);
+ }
}
/* De-serialize map */
htsmsg_field_t *f;
const char *str;
- HTSMSG_FOREACH(f, map) {
- if ((str = htsmsg_field_get_string(f))) {
- lang_str_add(ret, str, f->hmf_name);
+ if (ret) {
+ HTSMSG_FOREACH(f, map) {
+ if ((str = htsmsg_field_get_string(f))) {
+ lang_str_add(ret, str, f->hmf_name);
+ }
}
}
return ret;