diff options
-rw-r--r-- | addressbook/ChangeLog | 5 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-destination.c | 32 |
2 files changed, 25 insertions, 12 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index e987ab876f..76a4ca8b11 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,8 @@ +2001-08-22 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-destination.c (e_destination_get_email): make + sure we don't get into a situation where priv->email == NULL. + 2001-08-21 Chris Toshok <toshok@ximian.com> * gui/widgets/e-minicard.c (e_minicard_event): if we're dragging, diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c index 44032d9cf6..25e1caa6ec 100644 --- a/addressbook/backend/ebook/e-destination.c +++ b/addressbook/backend/ebook/e-destination.c @@ -598,20 +598,25 @@ e_destination_get_email (const EDestination *dest) if (priv->card != NULL) { /* Pull the address out of the card. */ - EIterator *iter = e_list_get_iterator (priv->card->email); - gint n = priv->card_email_num; - - if (n >= 0) { - while (n > 0) { - e_iterator_next (iter); - --n; - } - - if (e_iterator_is_valid (iter)) { - gconstpointer ptr = e_iterator_get (iter); - priv->email = g_strdup ((gchar *) ptr); + if (priv->card->email) { + EIterator *iter = e_list_get_iterator (priv->card->email); + gint n = priv->card_email_num; + + if (n >= 0) { + while (n > 0) { + e_iterator_next (iter); + --n; + } + + if (e_iterator_is_valid (iter)) { + gconstpointer ptr = e_iterator_get (iter); + priv->email = g_strdup ((gchar *) ptr); + } } } + else { + priv->email = g_strdup (""); + } } else if (priv->raw != NULL) { @@ -625,6 +630,9 @@ e_destination_get_email (const EDestination *dest) camel_object_unref (CAMEL_OBJECT (addr)); } + else { + priv->email = g_strdup (""); + } } return priv->email; |