aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/playlist.c7
-rw-r--r--src/playlist.h16
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);