aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-destination.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-destination.c')
-rw-r--r--addressbook/backend/ebook/e-destination.c32
1 files changed, 20 insertions, 12 deletions
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;