diff --git a/playlist.c b/playlist.c index ddc5183af1..d48c3faa2d 100644 --- a/playlist.c +++ b/playlist.c @@ -181,41 +181,12 @@ void playlist_update(playlist_t *playlist, size_t idx, entry = &playlist->entries[idx]; - if (path) - { - free(entry->path); - entry->path = strdup(path); - } - - if (label) - { - free(entry->label); - entry->label = strdup(label); - } - - if (core_path) - { - free(entry->core_path); - entry->core_path = strdup(core_path); - } - - if (core_name) - { - free(entry->core_name); - entry->core_name = strdup(core_name); - } - - if (db_name) - { - free(entry->db_name); - entry->db_name = strdup(db_name); - } - - if (crc32) - { - free(entry->crc32); - entry->crc32 = strdup(crc32); - } + entry->path = path ? strdup(path) : entry->path; + entry->label = label ? strdup(label) : entry->label; + entry->core_path = core_path ? strdup(core_path) : entry->core_path; + entry->core_name = core_name ? strdup(core_name) : entry->core_name; + entry->db_name = db_name ? strdup(db_name) : entry->db_name; + entry->crc32 = crc32 ? strdup(crc32) : entry->crc32; } /** @@ -426,29 +397,15 @@ static bool playlist_read_file( continue; if (*buf[0]) - { - free(entry->path); entry->path = strdup(buf[0]); - } if (*buf[1]) - { - free(entry->label); entry->label = strdup(buf[1]); - } - free(entry->core_path); entry->core_path = strdup(buf[2]); - free(entry->core_name); entry->core_name = strdup(buf[3]); if (*buf[4]) - { - free(entry->crc32); entry->crc32 = strdup(buf[4]); - } if (*buf[5]) - { - free(entry->db_name); entry->db_name = strdup(buf[5]); - } playlist->size++; }