From cbc367d975b9426be2eac299a4e41c8d81b08063 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sun, 12 Oct 2008 12:46:26 -0300 Subject: [PATCH] Use an array instead of a list for the entries in a feed --- atom/feed.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/atom/feed.c b/atom/feed.c index cbd9161..6e6f101 100644 --- a/atom/feed.c +++ b/atom/feed.c @@ -25,7 +25,7 @@ struct _atom_feed { - GList *entries; + GPtrArray *entries; }; AtomFeed * @@ -33,25 +33,26 @@ atom_feed_new (void) { AtomFeed *feed; feed = g_slice_new (AtomFeed); - feed->entries = NULL; + feed->entries = g_ptr_array_new ();; return feed; } void atom_feed_delete (AtomFeed *feed) { - GList *l; - for (l = g_list_first (feed->entries); l != NULL; l = l->next) + int i; + for (i = 0; i < feed->entries->len; i++) { - atom_entry_delete (l->data); + atom_entry_delete (g_ptr_array_index (feed->entries, i)); } + g_ptr_array_free (feed->entries, TRUE); g_slice_free (AtomFeed, feed); } void atom_feed_entry_append (AtomFeed *feed, AtomEntry *entry) { - feed->entries = g_list_prepend (feed->entries, entry); + g_ptr_array_add (feed->entries, entry); } void @@ -60,7 +61,7 @@ atom_feed_entry_append_array (AtomFeed *feed, AtomEntry **entries, size_t len) int i; for (i = 0; i < len; i++) { - feed->entries = g_list_prepend (feed->entries, entries[i]); + g_ptr_array_add (feed->entries, entries[i]); } } @@ -69,12 +70,12 @@ atom_feed_to_xmlnode (AtomFeed *feed) { xmlNodePtr node; xmlNodePtr entry; - GList *l; + int i; node = xmlNewNode (NULL, "feed"); xmlNewNs (node, ATOM_NAMESPACE, NULL); - for (l = g_list_last (feed->entries); l != NULL; l = l->prev) + for (i = feed->entries->len - 1; i >= 0; i--) { - entry = atom_entry_to_xmlnode (l->data); + entry = atom_entry_to_xmlnode (g_ptr_array_index (feed->entries, i)); xmlAddChild (node, entry); } return node; -- 2.20.1