struct _atom_feed
{
- GList *entries;
+ GPtrArray *entries;
};
AtomFeed *
{
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
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]);
}
}
{
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;