Changeset 901cee9 for messagelist.c


Ignore:
Timestamp:
Jul 4, 2011, 12:50:55 AM (10 years ago)
Author:
Jason Gross <jgross@mit.edu>
Branches:
master, release-1.8, release-1.9
Children:
4a01fc6, 95c7f0c, 401752a
Parents:
785ee77
git-author:
Jason Gross <jgross@mit.edu> (07/03/11 23:42:26)
git-committer:
Jason Gross <jgross@mit.edu> (07/04/11 00:50:55)
Message:
Don't segfault when you expunge all messages from the messagelist

When we used owl_list, trying to get an element from an empty list would
return NULL.  When we moved to GPtrArray, we dropped this checking,
without dropping the assumption that, e.g.,
 owl_view_get_element(v, owl_global_get_curmsg(&g));
works everywhere.  This commit adds the logic back in to deal with this
case.

Additionally, don't segfault on things like :unpunt -1.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • messagelist.c

    rfc8a87a r901cee9  
    2222void *owl_messagelist_get_element(const owl_messagelist *ml, int n)
    2323{
     24  /* we assume things like owl_view_get_element(v, owl_global_get_curmsg(&g))
     25   * work even when there are no messages in the message list.  So don't
     26   * segfault if someone asks for the zeroth element of an empty list.
     27   */
     28  if (n >= ml->list->len) return NULL;
    2429  return ml->list->pdata[n];
    2530}
Note: See TracChangeset for help on using the changeset viewer.