Make e_contact_photo_copy() public.
authorMatthew Barnes <mbarnes@redhat.com>
Tue, 26 Feb 2013 15:22:03 +0000 (10:22 -0500)
committerMatthew Barnes <mbarnes@redhat.com>
Tue, 26 Feb 2013 15:27:58 +0000 (10:27 -0500)
addressbook/libebook-contacts/e-contact.c
addressbook/libebook-contacts/e-contact.h
docs/reference/addressbook/libebook-contacts/libebook-contacts-sections.txt

index 3239f5c..934496c 100644 (file)
@@ -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;
 }
 
 /**
index 46483ff..e8cf418 100644 (file)
@@ -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,
index 4e30d4c..8fa7582 100644 (file)
@@ -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