[881] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[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));
     }


home help back first fref pref prev next nref lref last post