Merge lp:~mhr3/libzeitgeist/various-fixes into lp:libzeitgeist

Proposed by Michal Hruby
Status: Merged
Merge reported by: Mikkel Kamstrup Erlandsen
Merged at revision: not available
Proposed branch: lp:~mhr3/libzeitgeist/various-fixes
Merge into: lp:libzeitgeist
Diff against target: 47 lines (+11/-3)
2 files modified
bindings/zeitgeist-1.0.metadata (+1/-0)
src/zeitgeist-eggdbusconversions.c (+10/-3)
To merge this branch: bzr merge lp:~mhr3/libzeitgeist/various-fixes
Reviewer Review Type Date Requested Status
Mikkel Kamstrup Erlandsen make check, and code review Approve
Review via email: mp+24953@code.launchpad.net

Description of the change

Fixes memory leak in conversion from ZeitgeistEvent to EggZeitgeistEvent.

Another thing to consider is ref sinking the events created in call to ie find_events_finish, should this be done? Basically they can be considered as owned by the PtrArray, so I think it makes sense.

To post a comment you must log in.
Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote :

Good spot! Thanks a bunch!

review: Approve (make check, and code review)
lp:~mhr3/libzeitgeist/various-fixes updated
113. By Mikkel Kamstrup Erlandsen <kamstrup@hardback>

Merge Michal Hruby's branch, lp:~mhr3/libzeitgeist/various-fixes, fixing a memleak in _zeitgeist_event_to_egg_zeitgeist_event

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bindings/zeitgeist-1.0.metadata'
--- bindings/zeitgeist-1.0.metadata 2010-04-28 13:11:28 +0000
+++ bindings/zeitgeist-1.0.metadata 2010-05-09 12:36:28 +0000
@@ -26,6 +26,7 @@
26zeitgeist_log_install_monitor async="1"26zeitgeist_log_install_monitor async="1"
27zeitgeist_log_remove_monitor async="1"27zeitgeist_log_remove_monitor async="1"
28zeitgeist_event_new_full ellipsis="1"28zeitgeist_event_new_full ellipsis="1"
29zeitgeist_event_set_payload.payload transfer_ownership="1"
29zeitgeist_monitor_new.event_templates transfer_ownership="1"30zeitgeist_monitor_new.event_templates transfer_ownership="1"
3031
31zeitgeist_log_*.cancellable nullable="1"32zeitgeist_log_*.cancellable nullable="1"
3233
=== modified file 'src/zeitgeist-eggdbusconversions.c'
--- src/zeitgeist-eggdbusconversions.c 2010-04-30 15:12:17 +0000
+++ src/zeitgeist-eggdbusconversions.c 2010-05-09 12:36:28 +0000
@@ -112,12 +112,13 @@
112EggZeitgeistEvent*112EggZeitgeistEvent*
113_zeitgeist_event_to_egg_zeitgeist_event (ZeitgeistEvent *event)113_zeitgeist_event_to_egg_zeitgeist_event (ZeitgeistEvent *event)
114{114{
115 EggZeitgeistEvent *result;
115 ZeitgeistSubject *subject;116 ZeitgeistSubject *subject;
116 EggDBusArraySeq *subjects_data, *payload_data;117 EggDBusArraySeq *subjects_data, *payload_data;
117 GByteArray *payload;118 GByteArray *payload;
118 gchar **event_data, **subject_data;119 gchar **event_data, **subject_data;
119 const gchar *val;120 const gchar *val;
120 gint num_subjects, i; 121 gint num_subjects, i;
121122
122 /* Event metadata */123 /* Event metadata */
123 event_data = g_new0 (gchar*, EGG_ZEITGEIST_EVENT_DATA_OFFSET_ACTOR + 2);124 event_data = g_new0 (gchar*, EGG_ZEITGEIST_EVENT_DATA_OFFSET_ACTOR + 2);
@@ -197,8 +198,14 @@
197 egg_dbus_array_seq_add_fixed (payload_data, payload->data[i]);198 egg_dbus_array_seq_add_fixed (payload_data, payload->data[i]);
198 }199 }
199 }200 }
200 201
201 return egg_zeitgeist_event_new (event_data, subjects_data, payload_data);202 result = egg_zeitgeist_event_new (event_data, subjects_data, payload_data);
203
204 g_strfreev (event_data);
205 g_object_unref (subjects_data);
206 g_object_unref (payload_data);
207
208 return result;
202}209}
203210
204GPtrArray*211GPtrArray*

Subscribers

People subscribed via source and target branches