Re: GList empty after iteration?
- From: Denis Washington <denisw online de>
- To: gtk-app-devel-list gnome org
- Subject: Re: GList empty after iteration?
- Date: Mon, 12 Sep 2011 22:19:50 +0200
Am 12.09.2011 21:10, schrieb Craig:
Hi All,
I am confused about GList. My application is parsing a file and creating
midi data with it. I am using GList to store the midi data. I have
created a GtkListStore to view the parsed data (to insure I am parsing
the data properly). So, below I iterate through the GList and "copy"
the data into a tree view. But, I am shocked to see that after I
iterate through the GList, I cannot iterate through the list again. I
have debugged the list after the iteration with g_list_length(events)
which shows the list length at 0. What is up with this? The first
while loop has data, the second while loop has not data. The code is
below-->
GtkTreeIter tree_iter;
events = g_list_reverse(events);
events = g_list_first(events);
while(events)
{
gtk_list_store_append (list_store,&tree_iter);
struct midi_event *me = events->data;
gtk_list_store_set(list_store,&tree_iter,
0, me->time_stamp,
1, me->event_type,
2, me->message1,
3, me->message2,
-1);
events = g_list_next(events);
}
/// this is where the list appears to be empty!!!!
events = g_list_first(events);
while(events)
{
g_print("midi event \n");
events = g_list_next(events);
}
Thanks for any help!
This is because you overwrite "events" in the first loop until it is
NULL ("while (events)"). So when you do "g_list_first(events)"
afterwards, you naturally get NULL back.
You should use another GList pointer to iterate through the list, like so:
GtkTreeIter tree_iter;
GList *l;
events = g_list_reverse(events);
events = g_list_first(events);
for (l = events; l; l = l->next)
{
gtk_list_store_append (list_store,&tree_iter);
struct midi_event *me = l->data;
gtk_list_store_set(list_store,&tree_iter,
0, me->time_stamp,
1, me->event_type,
2, me->message1,
3, me->message2,
-1);
}
for (l = events; l; l = l->next)
{
g_print("midi event \n");
}
Regards,
Denis
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]