[881] in BarnOwl Developers
[D-O-H] r868 - branches/barnowl_sqlite/owl
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:10:42 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Mon, 14 Jan 2008 02:46:51 -0500 (EST)
Author: nelhage
Date: 2008-01-14 02:46:51 -0500 (Mon, 14 Jan 2008)
New Revision: 868
Modified:
branches/barnowl_sqlite/owl/messagelist.c
branches/barnowl_sqlite/owl/owl.h
branches/barnowl_sqlite/owl/view.c
Log:
Kill owl_messagelist_get_element entirely
Modified: branches/barnowl_sqlite/owl/messagelist.c
===================================================================
--- branches/barnowl_sqlite/owl/messagelist.c 2008-01-14 07:44:26 UTC (rev 867)
+++ branches/barnowl_sqlite/owl/messagelist.c 2008-01-14 07:46:51 UTC (rev 868)
@@ -15,11 +15,19 @@
return(owl_list_get_size(&(ml->list)));
}
-void *owl_messagelist_get_element(owl_messagelist *ml, int n)
-{
- return(owl_list_get_element(&(ml->list), n));
+void owl_messagelist_start_iterate(owl_messagelist *ml) {
+ ml->iterator = 0;
}
+owl_message *owl_messagelist_iterate_next(owl_messagelist *ml) {
+ owl_message *m = NULL;
+ if(ml->iterator >= 0 && ml->iterator < owl_list_get_size(&(ml->list))) {
+ m = owl_list_get_element(&(ml->list), ml->iterator);
+ ml->iterator++;
+ }
+ return m;
+}
+
owl_message *owl_messagelist_get_by_id(owl_messagelist *ml, int target_id)
{
/* return the message with id == 'id'. If it doesn't exist return NULL. */
Modified: branches/barnowl_sqlite/owl/owl.h
===================================================================
--- branches/barnowl_sqlite/owl/owl.h 2008-01-14 07:44:26 UTC (rev 867)
+++ branches/barnowl_sqlite/owl/owl.h 2008-01-14 07:46:51 UTC (rev 868)
@@ -405,6 +405,7 @@
typedef struct _owl_messagelist {
owl_list list;
+ int iterator;
} owl_messagelist;
typedef struct _owl_regex {
Modified: branches/barnowl_sqlite/owl/view.c
===================================================================
--- branches/barnowl_sqlite/owl/view.c 2008-01-14 07:44:26 UTC (rev 867)
+++ branches/barnowl_sqlite/owl/view.c 2008-01-14 07:46:51 UTC (rev 868)
@@ -31,7 +31,6 @@
*/
void owl_view_recalculate(owl_view *v)
{
- int i, j;
owl_messagelist *gml;
owl_list *ml;
owl_message *m;
@@ -44,9 +43,8 @@
owl_list_create(ml);
/* find all the messages we want */
- j=owl_messagelist_get_size(gml);
- for (i=0; i<j; i++) {
- m=owl_messagelist_get_element(gml, i);
+ owl_messagelist_start_iterate(gml);
+ while((m = owl_messagelist_iterate_next(gml)) != NULL) {
if (owl_filter_message_match(v->filter, m)) {
owl_list_append_element(ml, (void*)owl_message_get_id(m));
}