summaryrefslogtreecommitdiff
path: root/telepathy-logger/text-event.c
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.co.uk>2011-03-15 13:46:44 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>2011-03-15 13:46:44 -0400
commit7c0d7486779f93ab5f02e3893fc59db2bca2381b (patch)
treeafd066c92b62d013423f324a5d08e6fbe7c7da0c /telepathy-logger/text-event.c
parent934c602751618019c79d592e899bb028e62cbf6f (diff)
downloadtelepathy-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.c16
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",