Code

mpdclient: added mpdclient_playlist_init(), mpdclient_playlist_clear()
[ncmpc.git] / src / playlist.c
index e2530435e37bd432c1921cda53caebcc672d0ad0..b600343d720ab23fba3b1663b1ba539eedc554f4 100644 (file)
 
 #define MPD_ERROR(c) (c==NULL || c->connection==NULL || c->connection->error)
 
-gint
-mpdclient_playlist_free(mpdclient_playlist_t *playlist)
+void
+playlist_init(struct mpdclient_playlist *playlist)
+{
+       playlist->id = 0;
+       playlist->updated = FALSE;
+       playlist->list = g_array_sized_new(FALSE, FALSE,
+                                          sizeof(struct mpd_song *), 1024);
+}
+
+void
+playlist_clear(struct mpdclient_playlist *playlist)
 {
        guint i;
 
@@ -39,7 +48,17 @@ mpdclient_playlist_free(mpdclient_playlist_t *playlist)
                mpd_freeSong(song);
        }
 
-       g_array_free(playlist->list, TRUE);
+       g_array_set_size(playlist->list, 0);
+}
+
+gint
+mpdclient_playlist_free(mpdclient_playlist_t *playlist)
+{
+       if (playlist->list != NULL) {
+               playlist_clear(playlist);
+               g_array_free(playlist->list, TRUE);
+       }
+
        memset(playlist, 0, sizeof(mpdclient_playlist_t));
        return 0;
 }