diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2011-03-15 13:46:44 -0400 |
---|---|---|
committer | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2011-03-15 13:46:44 -0400 |
commit | 7c0d7486779f93ab5f02e3893fc59db2bca2381b (patch) | |
tree | afd066c92b62d013423f324a5d08e6fbe7c7da0c /telepathy-logger/text-event.c | |
parent | 934c602751618019c79d592e899bb028e62cbf6f (diff) | |
download | telepathy-logger-7c0d7486779f93ab5f02e3893fc59db2bca2381b.tar.gz |
Correctly implement event_equal
The old implementation was relying on a hash that did not contain all the
contain all the information.
Diffstat (limited to 'telepathy-logger/text-event.c')
-rw-r--r-- | telepathy-logger/text-event.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/telepathy-logger/text-event.c b/telepathy-logger/text-event.c index 8adffe3..a1a40ad 100644 --- a/telepathy-logger/text-event.c +++ b/telepathy-logger/text-event.c @@ -166,15 +166,31 @@ tpl_text_event_set_property (GObject *object, } } + +static gboolean tpl_text_event_equal (TplEvent *event1, + TplEvent *event2) +{ + TplTextEvent *text_event1 = TPL_TEXT_EVENT (event1); + TplTextEvent *text_event2 = TPL_TEXT_EVENT (event2); + + return TPL_EVENT_CLASS (tpl_text_event_parent_class)->equal (event1, event2) + && text_event1->priv->message_type == text_event2->priv->message_type + && !tp_strdiff (text_event1->priv->message, text_event2->priv->message); +} + + static void tpl_text_event_class_init (TplTextEventClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + TplEventClass *event_class = TPL_EVENT_CLASS (klass); GParamSpec *param_spec; object_class->finalize = tpl_text_event_finalize; object_class->get_property = tpl_text_event_get_property; object_class->set_property = tpl_text_event_set_property; + event_class->equal = tpl_text_event_equal; + param_spec = g_param_spec_uint ("message-type", "MessageType", "The message type for a Text log event", |