void directory_free(struct directory *directory) { playlist_vector_deinit(&directory->playlists); struct song *song, *ns; directory_for_each_song_safe(song, ns, directory) song_free(song); struct directory *child, *n; directory_for_each_child_safe(child, n, directory) directory_free(child); g_free(directory); /* this resets last dir returned */ /*directory_get_path(NULL); */ }
void directory_free(struct directory *directory) { playlist_vector_deinit(&directory->playlists); for (unsigned i = 0; i < directory->songs.nr; ++i) song_free(directory->songs.base[i]); for (unsigned i = 0; i < directory->children.nr; ++i) directory_free(directory->children.base[i]); dirvec_destroy(&directory->children); songvec_destroy(&directory->songs); g_free(directory); /* this resets last dir returned */ /*directory_get_path(NULL); */ }