From bf59e44b2844f3e4d6957809d66aa0150ebd5faa Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 Feb 2013 10:22:03 -0500 Subject: [PATCH] Make e_contact_photo_copy() public. --- addressbook/libebook-contacts/e-contact.c | 32 +++++++++++++++------- addressbook/libebook-contacts/e-contact.h | 1 + .../libebook-contacts-sections.txt | 1 + 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/addressbook/libebook-contacts/e-contact.c b/addressbook/libebook-contacts/e-contact.c index 3239f5c..934496c 100644 --- a/addressbook/libebook-contacts/e-contact.c +++ b/addressbook/libebook-contacts/e-contact.c @@ -2199,28 +2199,40 @@ e_contact_photo_free (EContactPhoto *photo) * Creates a copy of @photo. * * Returns: A new #EContactPhoto struct identical to @photo. + * + * Since: 3.8 **/ -static EContactPhoto * +EContactPhoto * e_contact_photo_copy (EContactPhoto *photo) { - EContactPhoto *photo2 = g_new0 (EContactPhoto, 1); + EContactPhoto *copy; + + g_return_val_if_fail (photo != NULL, NULL); + + copy = g_new0 (EContactPhoto, 1); + switch (photo->type) { case E_CONTACT_PHOTO_TYPE_INLINED: - photo2->type = E_CONTACT_PHOTO_TYPE_INLINED; - photo2->data.inlined.mime_type = g_strdup (photo->data.inlined.mime_type); - photo2->data.inlined.length = photo->data.inlined.length; - photo2->data.inlined.data = g_malloc (photo2->data.inlined.length); - memcpy (photo2->data.inlined.data, photo->data.inlined.data, photo->data.inlined.length); + copy->type = E_CONTACT_PHOTO_TYPE_INLINED; + copy->data.inlined.mime_type = + g_strdup (photo->data.inlined.mime_type); + copy->data.inlined.length = photo->data.inlined.length; + copy->data.inlined.data = g_malloc (copy->data.inlined.length); + memcpy ( + copy->data.inlined.data, + photo->data.inlined.data, + photo->data.inlined.length); break; case E_CONTACT_PHOTO_TYPE_URI: - photo2->type = E_CONTACT_PHOTO_TYPE_URI; - photo2->data.uri = g_strdup (photo->data.uri); + copy->type = E_CONTACT_PHOTO_TYPE_URI; + copy->data.uri = g_strdup (photo->data.uri); break; default: g_warning ("Unknown EContactPhotoType %d", photo->type); break; } - return photo2; + + return copy; } /** diff --git a/addressbook/libebook-contacts/e-contact.h b/addressbook/libebook-contacts/e-contact.h index 46483ff..e8cf418 100644 --- a/addressbook/libebook-contacts/e-contact.h +++ b/addressbook/libebook-contacts/e-contact.h @@ -368,6 +368,7 @@ void e_contact_name_free (EContactName *name); GType e_contact_photo_get_type (void); EContactPhoto * e_contact_photo_new (void); void e_contact_photo_free (EContactPhoto *photo); +EContactPhoto * e_contact_photo_copy (EContactPhoto *photo); const guchar * e_contact_photo_get_inlined (EContactPhoto *photo, gsize *len); void e_contact_photo_set_inlined (EContactPhoto *photo, diff --git a/docs/reference/addressbook/libebook-contacts/libebook-contacts-sections.txt b/docs/reference/addressbook/libebook-contacts/libebook-contacts-sections.txt index 4e30d4c..8fa7582 100644 --- a/docs/reference/addressbook/libebook-contacts/libebook-contacts-sections.txt +++ b/docs/reference/addressbook/libebook-contacts/libebook-contacts-sections.txt @@ -80,6 +80,7 @@ e_contact_name_copy e_contact_name_free e_contact_photo_new e_contact_photo_free +e_contact_photo_copy e_contact_photo_get_inlined e_contact_photo_set_inlined e_contact_photo_get_mime_type -- 2.7.4