~ubuntu-branches/ubuntu/precise/folks/precise

« back to all changes in this revision

Viewing changes to backends/telepathy/lib/tpf-persona.c

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-06-10 11:28:11 UTC
  • mfrom: (1.2.11 upstream) (4.2.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110610112811-whyeodbo9mjezxfp
Tags: 0.5.2-1ubuntu1
* Merge with Debian experimental, remaining Ubuntu changes:
  - debian/control:
    + Add Vcs-Bzr link

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* tpf-persona.c generated by valac 0.11.7, the Vala compiler
 
1
/* tpf-persona.c generated by valac 0.12.0, the Vala compiler
2
2
 * generated from tpf-persona.vala, do not modify */
3
3
 
4
4
/*
23
23
 
24
24
#include <glib.h>
25
25
#include <glib-object.h>
26
 
#include <folks.h>
 
26
#include <folks/folks.h>
 
27
#include <gee.h>
27
28
#include <stdlib.h>
28
29
#include <string.h>
29
30
#include <gio/gio.h>
30
31
#include <telepathy-glib/telepathy-glib.h>
31
 
#include <gee.h>
32
32
 
33
33
 
34
34
#define TPF_TYPE_PERSONA (tpf_persona_get_type ())
41
41
typedef struct _TpfPersona TpfPersona;
42
42
typedef struct _TpfPersonaClass TpfPersonaClass;
43
43
typedef struct _TpfPersonaPrivate TpfPersonaPrivate;
44
 
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
 
44
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
45
45
#define _g_free0(var) (var = (g_free (var), NULL))
46
 
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
47
46
 
48
47
#define TPF_TYPE_PERSONA_STORE (tpf_persona_store_get_type ())
49
48
#define TPF_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPF_TYPE_PERSONA_STORE, TpfPersonaStore))
58
57
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
59
58
typedef struct _Block1Data Block1Data;
60
59
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
61
 
typedef struct _Block2Data Block2Data;
62
60
 
63
61
struct _TpfPersona {
64
62
        FolksPersona parent_instance;
70
68
};
71
69
 
72
70
struct _TpfPersonaPrivate {
73
 
        GHashTable* _groups;
 
71
        GeeHashSet* _groups;
 
72
        GeeSet* _groups_ro;
74
73
        gboolean _is_favourite;
75
74
        gchar* _alias;
76
 
        GHashTable* _im_addresses;
 
75
        GeeHashMultiMap* _im_addresses;
77
76
        gboolean _is_constructed;
78
77
        gboolean _is_in_contact_list;
79
78
        GFile* _avatar;
102
101
        TpConnection* conn;
103
102
};
104
103
 
105
 
struct _Block2Data {
106
 
        int _ref_count_;
107
 
        TpfPersona * self;
108
 
        GHashTable* value;
109
 
};
110
 
 
111
104
 
112
105
static gpointer tpf_persona_parent_class = NULL;
113
106
static FolksAliasDetailsIface* tpf_persona_folks_alias_details_parent_iface = NULL;
146
139
static void _lambda15_ (GObject* s, GParamSpec* p, TpfPersona* self);
147
140
TpContact* tpf_persona_get_contact (TpfPersona* self);
148
141
static void __lambda15__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
149
 
static void _g_free0_ (gpointer var);
150
 
static void _g_object_unref0_ (gpointer var);
151
142
static void _lambda16_ (GObject* s, GParamSpec* p, TpfPersona* self);
152
143
static void _tpf_persona_contact_notify_avatar (TpfPersona* self);
153
144
static void __lambda16__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
172
163
void tpf_persona_store_change_alias_finish (TpfPersonaStore* self, GAsyncResult* _res_);
173
164
void tpf_persona_store_change_is_favourite (TpfPersonaStore* self, FolksPersona* persona, gboolean is_favourite, GAsyncReadyCallback _callback_, gpointer _user_data_);
174
165
void tpf_persona_store_change_is_favourite_finish (TpfPersonaStore* self, GAsyncResult* _res_);
175
 
static Block2Data* block2_data_ref (Block2Data* _data2_);
176
 
static void block2_data_unref (Block2Data* _data2_);
177
 
static void _lambda21_ (const gchar* k, gboolean v, TpfPersona* self);
178
 
static void __lambda21__gh_func (gconstpointer key, gconstpointer value, gpointer self);
179
 
static void _lambda22_ (const gchar* k, gboolean v, Block2Data* _data2_);
180
 
static void __lambda22__gh_func (gconstpointer key, gconstpointer value, gpointer self);
181
166
static void tpf_persona_set_contact (TpfPersona* self, TpContact* value);
182
167
static void tpf_persona_finalize (GObject* obj);
183
168
static void _vala_tpf_persona_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
273
258
        g_return_val_if_fail (group != NULL, FALSE);
274
259
        changed = FALSE;
275
260
        if (is_member) {
276
 
                gconstpointer _tmp0_ = NULL;
277
 
                _tmp0_ = g_hash_table_lookup (self->priv->_groups, group);
278
 
                if (GPOINTER_TO_INT (_tmp0_) != TRUE) {
279
 
                        gchar* _tmp1_;
280
 
                        _tmp1_ = g_strdup (group);
281
 
                        g_hash_table_insert (self->priv->_groups, _tmp1_, GINT_TO_POINTER (TRUE));
 
261
                gboolean _tmp0_;
 
262
                _tmp0_ = gee_abstract_collection_contains ((GeeAbstractCollection*) self->priv->_groups, group);
 
263
                if (!_tmp0_) {
 
264
                        gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->_groups, group);
282
265
                        changed = TRUE;
283
266
                }
284
267
        } else {
285
 
                gboolean _tmp2_;
286
 
                _tmp2_ = g_hash_table_remove (self->priv->_groups, group);
287
 
                changed = _tmp2_;
 
268
                gboolean _tmp1_;
 
269
                _tmp1_ = gee_abstract_collection_remove ((GeeAbstractCollection*) self->priv->_groups, group);
 
270
                changed = _tmp1_;
288
271
        }
289
272
        if (changed == TRUE) {
290
273
                g_signal_emit_by_name ((FolksGroupDetails*) self, "group-changed", group, is_member);
325
308
}
326
309
 
327
310
 
328
 
static void _g_free0_ (gpointer var) {
329
 
        var = (g_free (var), NULL);
330
 
}
331
 
 
332
 
 
333
 
static void _g_object_unref0_ (gpointer var) {
334
 
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
335
 
}
336
 
 
337
 
 
338
311
static void _lambda16_ (GObject* s, GParamSpec* p, TpfPersona* self) {
339
312
        g_return_if_fail (s != NULL);
340
313
        g_return_if_fail (p != NULL);
410
383
                _tmp0_ = FALSE;
411
384
        }
412
385
        if (_tmp0_) {
413
 
                g_debug ("tpf-persona.vala:314: Group invalidated: %s", _error_->message);
 
386
                g_debug ("tpf-persona.vala:311: Group invalidated: %s", _error_->message);
414
387
        }
415
388
        _tpf_persona_change_group (self, group, FALSE);
416
389
}
441
414
        gchar* _tmp11_;
442
415
        guint _tmp12_;
443
416
        guint _tmp13_;
444
 
        FolksLinkedHashSet* _tmp14_ = NULL;
445
 
        FolksLinkedHashSet* im_address_set;
 
417
        GeeHashMultiMap* _tmp14_ = NULL;
446
418
        const gchar* _tmp15_ = NULL;
447
419
        gchar* _tmp16_ = NULL;
448
420
        gchar* _tmp17_;
449
 
        gchar* _tmp18_;
450
 
        GHashTable* _tmp19_ = NULL;
451
 
        const gchar* _tmp20_ = NULL;
452
 
        gchar* _tmp21_;
453
 
        FolksLinkedHashSet* _tmp22_;
454
 
        GHashTable* _tmp23_ = NULL;
455
 
        FolksPersonaStore* _tmp24_ = NULL;
456
 
        FolksPersonaStore* _tmp25_ = NULL;
 
421
        const gchar* _tmp18_ = NULL;
 
422
        gchar* _tmp19_;
 
423
        GeeHashSet* _tmp20_ = NULL;
 
424
        GeeSet* _tmp21_ = NULL;
 
425
        FolksPersonaStore* _tmp22_ = NULL;
 
426
        FolksPersonaStore* _tmp23_ = NULL;
457
427
        GError * _inner_error_ = NULL;
458
428
        g_return_val_if_fail (contact != NULL, NULL);
459
429
        g_return_val_if_fail (store != NULL, NULL);
464
434
        _tmp2_ = _tpf_persona_account_for_connection (connection);
465
435
        account = _tmp2_;
466
436
        _tmp3_ = folks_persona_store_get_type_id ((FolksPersonaStore*) store);
467
 
        _tmp4_ = tp_account_get_protocol (account);
 
437
        _tmp4_ = folks_persona_store_get_id ((FolksPersonaStore*) store);
468
438
        _tmp5_ = folks_persona_build_uid (_tmp3_, _tmp4_, id);
469
439
        uid = _tmp5_;
470
440
        _tmp6_ = tp_contact_get_alias (contact);
479
449
        _g_free0 (_tmp11_);
480
450
        _g_free0 (_tmp9_);
481
451
        g_signal_connect_object ((GObject*) contact, "notify::alias", (GCallback) __lambda15__g_object_notify, self, 0);
482
 
        g_debug ("tpf-persona.vala:253: Creating new Tpf.Persona '%s' for service-specif" \
 
452
        g_debug ("tpf-persona.vala:252: Creating new Tpf.Persona '%s' for service-specif" \
483
453
"ic UID '%s': %p", uid, id, self);
484
454
        self->priv->_is_constructed = TRUE;
485
 
        _tmp14_ = folks_linked_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
486
 
        im_address_set = _tmp14_;
 
455
        _tmp14_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL);
 
456
        _g_object_unref0 (self->priv->_im_addresses);
 
457
        self->priv->_im_addresses = _tmp14_;
487
458
        _tmp15_ = tp_account_get_protocol (account);
488
459
        _tmp16_ = folks_im_details_normalise_im_address (id, _tmp15_, &_inner_error_);
489
460
        _tmp17_ = _tmp16_;
491
462
                if (_inner_error_->domain == FOLKS_IM_DETAILS_ERROR) {
492
463
                        goto __catch0_folks_im_details_error;
493
464
                }
494
 
                _g_object_unref0 (im_address_set);
495
465
                _g_free0 (uid);
496
466
                _g_object_unref0 (account);
497
467
                g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
498
468
                g_clear_error (&_inner_error_);
499
469
                return NULL;
500
470
        }
501
 
        _tmp18_ = _tmp17_;
502
 
        gee_abstract_collection_add ((GeeAbstractCollection*) im_address_set, _tmp18_);
503
 
        _g_free0 (_tmp18_);
 
471
        _tmp18_ = tp_account_get_protocol (account);
 
472
        _tmp19_ = _tmp17_;
 
473
        gee_multi_map_set ((GeeMultiMap*) self->priv->_im_addresses, _tmp18_, _tmp19_);
 
474
        _g_free0 (_tmp19_);
504
475
        goto __finally0;
505
476
        __catch0_folks_im_details_error:
506
477
        {
512
483
        }
513
484
        __finally0:
514
485
        if (_inner_error_ != NULL) {
515
 
                _g_object_unref0 (im_address_set);
516
486
                _g_free0 (uid);
517
487
                _g_object_unref0 (account);
518
488
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
519
489
                g_clear_error (&_inner_error_);
520
490
                return NULL;
521
491
        }
522
 
        _tmp19_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, _g_object_unref0_);
523
 
        _g_hash_table_unref0 (self->priv->_im_addresses);
524
 
        self->priv->_im_addresses = _tmp19_;
525
 
        _tmp20_ = tp_account_get_protocol (account);
526
 
        _tmp21_ = g_strdup (_tmp20_);
527
 
        _tmp22_ = _g_object_ref0 (im_address_set);
528
 
        g_hash_table_insert (self->priv->_im_addresses, _tmp21_, _tmp22_);
529
 
        _tmp23_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, NULL);
530
 
        _g_hash_table_unref0 (self->priv->_groups);
531
 
        self->priv->_groups = _tmp23_;
 
492
        _tmp20_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
 
493
        _g_object_unref0 (self->priv->_groups);
 
494
        self->priv->_groups = _tmp20_;
 
495
        _tmp21_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) self->priv->_groups);
 
496
        _g_object_unref0 (self->priv->_groups_ro);
 
497
        self->priv->_groups_ro = _tmp21_;
532
498
        g_signal_connect_object ((GObject*) contact, "notify::avatar-file", (GCallback) __lambda16__g_object_notify, self, 0);
533
499
        _tpf_persona_contact_notify_avatar (self);
534
500
        g_signal_connect_object ((GObject*) contact, "notify::presence-message", (GCallback) __lambda17__g_object_notify, self, 0);
535
501
        g_signal_connect_object ((GObject*) contact, "notify::presence-type", (GCallback) __lambda18__g_object_notify, self, 0);
536
502
        _tpf_persona_contact_notify_presence_message (self);
537
503
        _tpf_persona_contact_notify_presence_type (self);
538
 
        _tmp24_ = folks_persona_get_store ((FolksPersona*) self);
539
 
        g_signal_connect_object (TPF_PERSONA_STORE (_tmp24_), "group-members-changed", (GCallback) __lambda19__tpf_persona_store_group_members_changed, self, 0);
540
 
        _tmp25_ = folks_persona_get_store ((FolksPersona*) self);
541
 
        g_signal_connect_object (TPF_PERSONA_STORE (_tmp25_), "group-removed", (GCallback) __lambda20__tpf_persona_store_group_removed, self, 0);
542
 
        _g_object_unref0 (im_address_set);
 
504
        _tmp22_ = folks_persona_get_store ((FolksPersona*) self);
 
505
        g_signal_connect_object (TPF_PERSONA_STORE (_tmp22_), "group-members-changed", (GCallback) __lambda19__tpf_persona_store_group_members_changed, self, 0);
 
506
        _tmp23_ = folks_persona_get_store ((FolksPersona*) self);
 
507
        g_signal_connect_object (TPF_PERSONA_STORE (_tmp23_), "group-removed", (GCallback) __lambda20__tpf_persona_store_group_removed, self, 0);
543
508
        _g_free0 (uid);
544
509
        _g_object_unref0 (account);
545
510
        return self;
844
809
}
845
810
 
846
811
 
847
 
static GHashTable* tpf_persona_real_get_im_addresses (FolksImDetails* base) {
848
 
        GHashTable* result;
 
812
static GeeMultiMap* tpf_persona_real_get_im_addresses (FolksImDetails* base) {
 
813
        GeeMultiMap* result;
849
814
        TpfPersona* self;
850
815
        self = (TpfPersona*) base;
851
 
        result = self->priv->_im_addresses;
 
816
        result = (GeeMultiMap*) self->priv->_im_addresses;
852
817
        return result;
853
818
}
854
819
 
855
820
 
856
 
static void tpf_persona_real_set_im_addresses (FolksImDetails* base, GHashTable* value) {
 
821
static void tpf_persona_real_set_im_addresses (FolksImDetails* base, GeeMultiMap* value) {
857
822
        TpfPersona* self;
858
823
        self = (TpfPersona*) base;
859
824
        g_object_notify ((GObject *) self, "im-addresses");
860
825
}
861
826
 
862
827
 
863
 
static GHashTable* tpf_persona_real_get_groups (FolksGroupDetails* base) {
864
 
        GHashTable* result;
 
828
static GeeSet* tpf_persona_real_get_groups (FolksGroupDetails* base) {
 
829
        GeeSet* result;
865
830
        TpfPersona* self;
866
831
        self = (TpfPersona*) base;
867
 
        result = self->priv->_groups;
 
832
        result = self->priv->_groups_ro;
868
833
        return result;
869
834
}
870
835
 
871
836
 
872
 
static gpointer _g_hash_table_ref0 (gpointer self) {
873
 
        return self ? g_hash_table_ref (self) : NULL;
874
 
}
875
 
 
876
 
 
877
 
static Block2Data* block2_data_ref (Block2Data* _data2_) {
878
 
        g_atomic_int_inc (&_data2_->_ref_count_);
879
 
        return _data2_;
880
 
}
881
 
 
882
 
 
883
 
static void block2_data_unref (Block2Data* _data2_) {
884
 
        if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
885
 
                _g_object_unref0 (_data2_->self);
886
 
                _g_hash_table_unref0 (_data2_->value);
887
 
                g_slice_free (Block2Data, _data2_);
888
 
        }
889
 
}
890
 
 
891
 
 
892
 
static void _lambda21_ (const gchar* k, gboolean v, TpfPersona* self) {
893
 
        const gchar* group;
894
 
        gconstpointer _tmp0_ = NULL;
895
 
        g_return_if_fail (k != NULL);
896
 
        group = (const gchar*) k;
897
 
        _tmp0_ = g_hash_table_lookup (self->priv->_groups, group);
898
 
        if (GPOINTER_TO_INT (_tmp0_) == FALSE) {
899
 
                _tpf_persona_change_group (self, group, TRUE);
900
 
        }
901
 
}
902
 
 
903
 
 
904
 
static void __lambda21__gh_func (gconstpointer key, gconstpointer value, gpointer self) {
905
 
        _lambda21_ (key, value, self);
906
 
}
907
 
 
908
 
 
909
 
static void _lambda22_ (const gchar* k, gboolean v, Block2Data* _data2_) {
910
 
        TpfPersona * self;
911
 
        const gchar* group;
912
 
        gconstpointer _tmp0_ = NULL;
913
 
        self = _data2_->self;
914
 
        g_return_if_fail (k != NULL);
915
 
        group = (const gchar*) k;
916
 
        _tmp0_ = g_hash_table_lookup (_data2_->value, group);
917
 
        if (GPOINTER_TO_INT (_tmp0_) == FALSE) {
918
 
                _tpf_persona_change_group (self, group, TRUE);
919
 
        }
920
 
}
921
 
 
922
 
 
923
 
static void __lambda22__gh_func (gconstpointer key, gconstpointer value, gpointer self) {
924
 
        _lambda22_ (key, value, self);
925
 
}
926
 
 
927
 
 
928
 
static void tpf_persona_real_set_groups (FolksGroupDetails* base, GHashTable* value) {
 
837
static void tpf_persona_real_set_groups (FolksGroupDetails* base, GeeSet* value) {
929
838
        TpfPersona* self;
930
 
        Block2Data* _data2_;
931
839
        self = (TpfPersona*) base;
932
 
        _data2_ = g_slice_new0 (Block2Data);
933
 
        _data2_->_ref_count_ = 1;
934
 
        _data2_->self = g_object_ref (self);
935
 
        _data2_->value = _g_hash_table_ref0 (value);
936
 
        g_hash_table_foreach (_data2_->value, __lambda21__gh_func, self);
937
 
        g_hash_table_foreach (self->priv->_groups, __lambda22__gh_func, _data2_);
 
840
        {
 
841
                GeeIterator* _tmp0_ = NULL;
 
842
                GeeIterator* _group_it;
 
843
                _tmp0_ = gee_iterable_iterator ((GeeIterable*) value);
 
844
                _group_it = _tmp0_;
 
845
                while (TRUE) {
 
846
                        gboolean _tmp1_;
 
847
                        gpointer _tmp2_ = NULL;
 
848
                        gchar* group;
 
849
                        gboolean _tmp3_;
 
850
                        _tmp1_ = gee_iterator_next (_group_it);
 
851
                        if (!_tmp1_) {
 
852
                                break;
 
853
                        }
 
854
                        _tmp2_ = gee_iterator_get (_group_it);
 
855
                        group = (gchar*) _tmp2_;
 
856
                        _tmp3_ = gee_abstract_collection_contains ((GeeAbstractCollection*) self->priv->_groups, group);
 
857
                        if (_tmp3_ == FALSE) {
 
858
                                _tpf_persona_change_group (self, group, TRUE);
 
859
                        }
 
860
                        _g_free0 (group);
 
861
                }
 
862
                _g_object_unref0 (_group_it);
 
863
        }
 
864
        {
 
865
                GeeIterator* _tmp4_ = NULL;
 
866
                GeeIterator* _group_it;
 
867
                _tmp4_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->_groups);
 
868
                _group_it = _tmp4_;
 
869
                while (TRUE) {
 
870
                        gboolean _tmp5_;
 
871
                        gpointer _tmp6_ = NULL;
 
872
                        gchar* group;
 
873
                        gboolean _tmp7_;
 
874
                        _tmp5_ = gee_iterator_next (_group_it);
 
875
                        if (!_tmp5_) {
 
876
                                break;
 
877
                        }
 
878
                        _tmp6_ = gee_iterator_get (_group_it);
 
879
                        group = (gchar*) _tmp6_;
 
880
                        _tmp7_ = gee_collection_contains ((GeeCollection*) value, group);
 
881
                        if (_tmp7_ == FALSE) {
 
882
                                _tpf_persona_change_group (self, group, TRUE);
 
883
                        }
 
884
                        _g_free0 (group);
 
885
                }
 
886
                _g_object_unref0 (_group_it);
 
887
        }
938
888
        g_object_notify ((GObject*) self, "groups");
939
 
        block2_data_unref (_data2_);
940
 
        _data2_ = NULL;
941
889
        g_object_notify ((GObject *) self, "groups");
942
890
}
943
891
 
1015
963
           */
1016
964
        g_object_class_override_property (G_OBJECT_CLASS (klass), TPF_PERSONA_IS_FAVOURITE, "is-favourite");
1017
965
        /**
1018
 
           * A mapping of IM protocol to an ordered set of IM addresses.
 
966
           * A mapping of IM protocol to an (unordered) set of IM addresses.
1019
967
           *
1020
968
           * See {@link Folks.ImDetails.im_addresses}.
1021
969
           */
1090
1038
        const gchar* _tmp0_ = NULL;
1091
1039
        self = TPF_PERSONA (obj);
1092
1040
        _tmp0_ = folks_persona_get_uid ((FolksPersona*) self);
1093
 
        g_debug ("tpf-persona.vala:323: Destroying Tpf.Persona '%s': %p", _tmp0_, self);
1094
 
        _g_hash_table_unref0 (self->priv->_groups);
 
1041
        g_debug ("tpf-persona.vala:320: Destroying Tpf.Persona '%s': %p", _tmp0_, self);
 
1042
        _g_object_unref0 (self->priv->_groups);
 
1043
        _g_object_unref0 (self->priv->_groups_ro);
1095
1044
        _g_free0 (self->priv->_alias);
1096
 
        _g_hash_table_unref0 (self->priv->_im_addresses);
 
1045
        _g_object_unref0 (self->priv->_im_addresses);
1097
1046
        _g_object_unref0 (self->priv->_avatar);
1098
1047
        _g_free0 (self->priv->_presence_message);
1099
1048
        _g_object_unref0 (self->priv->_contact);
1156
1105
                g_value_set_boolean (value, folks_favourite_details_get_is_favourite ((FolksFavouriteDetails*) self));
1157
1106
                break;
1158
1107
                case TPF_PERSONA_IM_ADDRESSES:
1159
 
                g_value_set_boxed (value, folks_im_details_get_im_addresses ((FolksImDetails*) self));
 
1108
                g_value_set_object (value, folks_im_details_get_im_addresses ((FolksImDetails*) self));
1160
1109
                break;
1161
1110
                case TPF_PERSONA_GROUPS:
1162
 
                g_value_set_boxed (value, folks_group_details_get_groups ((FolksGroupDetails*) self));
 
1111
                g_value_set_object (value, folks_group_details_get_groups ((FolksGroupDetails*) self));
1163
1112
                break;
1164
1113
                case TPF_PERSONA_CONTACT:
1165
1114
                g_value_set_object (value, tpf_persona_get_contact (self));
1194
1143
                folks_favourite_details_set_is_favourite ((FolksFavouriteDetails*) self, g_value_get_boolean (value));
1195
1144
                break;
1196
1145
                case TPF_PERSONA_IM_ADDRESSES:
1197
 
                folks_im_details_set_im_addresses ((FolksImDetails*) self, g_value_get_boxed (value));
 
1146
                folks_im_details_set_im_addresses ((FolksImDetails*) self, g_value_get_object (value));
1198
1147
                break;
1199
1148
                case TPF_PERSONA_GROUPS:
1200
 
                folks_group_details_set_groups ((FolksGroupDetails*) self, g_value_get_boxed (value));
 
1149
                folks_group_details_set_groups ((FolksGroupDetails*) self, g_value_get_object (value));
1201
1150
                break;
1202
1151
                case TPF_PERSONA_CONTACT:
1203
1152
                tpf_persona_set_contact (self, g_value_get_object (value));