diff options
-rw-r--r-- | src/playlist.c | 7 | ||||
-rw-r--r-- | src/playlist.h | 16 |
2 files changed, 10 insertions, 13 deletions
diff --git a/src/playlist.c b/src/playlist.c index d14f870b0..6751e5dad 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -34,8 +34,7 @@ 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); + playlist->list = g_ptr_array_sized_new(1024); } void @@ -49,7 +48,7 @@ playlist_clear(struct mpdclient_playlist *playlist) mpd_freeSong(song); } - g_array_set_size(playlist->list, 0); + g_ptr_array_set_size(playlist->list, 0); } gint @@ -57,7 +56,7 @@ mpdclient_playlist_free(mpdclient_playlist_t *playlist) { if (playlist->list != NULL) { playlist_clear(playlist); - g_array_free(playlist->list, TRUE); + g_ptr_array_free(playlist->list, TRUE); } memset(playlist, 0, sizeof(mpdclient_playlist_t)); diff --git a/src/playlist.h b/src/playlist.h index 377ed84a2..9cd88ab27 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -37,7 +37,7 @@ typedef struct mpdclient_playlist { gboolean updated; /* the list */ - GArray *list; + GPtrArray *list; } mpdclient_playlist_t; void @@ -70,14 +70,13 @@ playlist_get(const struct mpdclient_playlist *playlist, guint idx) { assert(idx < playlist_length(playlist)); - return g_array_index(playlist->list, struct mpd_song *, idx); + return g_ptr_array_index(playlist->list, idx); } static inline void playlist_append(struct mpdclient_playlist *playlist, const mpd_Song *song) { - mpd_Song *song2 = mpd_songDup(song); - g_array_append_val(playlist->list, song2); + g_ptr_array_add(playlist->list, mpd_songDup(song)); } static inline void @@ -86,7 +85,7 @@ playlist_set(const struct mpdclient_playlist *playlist, guint idx, { assert(idx < playlist_length(playlist)); - g_array_index(playlist->list, mpd_Song *, idx) = mpd_songDup(song); + g_ptr_array_index(playlist->list, idx) = mpd_songDup(song); } static inline void @@ -100,9 +99,8 @@ playlist_replace(struct mpdclient_playlist *playlist, guint idx, static inline void playlist_remove(struct mpdclient_playlist *playlist, guint idx) { - mpd_Song *song = playlist_get(playlist, idx); + mpd_Song *song = g_ptr_array_remove_index(playlist->list, idx); mpd_freeSong(song); - g_array_remove_index(playlist->list, idx); } static inline void @@ -118,8 +116,8 @@ playlist_swap(struct mpdclient_playlist *playlist, guint idx1, guint idx2) song2->pos = n; /* update the array */ - g_array_index(playlist->list, struct mpd_song *, idx1) = song2; - g_array_index(playlist->list, struct mpd_song *, idx2) = song1; + g_ptr_array_index(playlist->list, idx1) = song2; + g_ptr_array_index(playlist->list, idx2) = song1; } struct mpd_song *playlist_lookup_song(struct mpdclient *c, gint id); |