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
1=== modified file 'bindings/zeitgeist-1.0.metadata'
2--- bindings/zeitgeist-1.0.metadata 2010-04-28 13:11:28 +0000
3+++ bindings/zeitgeist-1.0.metadata 2010-05-09 12:36:28 +0000
4@@ -26,6 +26,7 @@
5 zeitgeist_log_install_monitor async="1"
6 zeitgeist_log_remove_monitor async="1"
7 zeitgeist_event_new_full ellipsis="1"
8+zeitgeist_event_set_payload.payload transfer_ownership="1"
9 zeitgeist_monitor_new.event_templates transfer_ownership="1"
10
11 zeitgeist_log_*.cancellable nullable="1"
12
13=== modified file 'src/zeitgeist-eggdbusconversions.c'
14--- src/zeitgeist-eggdbusconversions.c 2010-04-30 15:12:17 +0000
15+++ src/zeitgeist-eggdbusconversions.c 2010-05-09 12:36:28 +0000
16@@ -112,12 +112,13 @@
17 EggZeitgeistEvent*
18 _zeitgeist_event_to_egg_zeitgeist_event (ZeitgeistEvent *event)
19 {
20+ EggZeitgeistEvent *result;
21 ZeitgeistSubject *subject;
22 EggDBusArraySeq *subjects_data, *payload_data;
23 GByteArray *payload;
24 gchar **event_data, **subject_data;
25 const gchar *val;
26- gint num_subjects, i;
27+ gint num_subjects, i;
28
29 /* Event metadata */
30 event_data = g_new0 (gchar*, EGG_ZEITGEIST_EVENT_DATA_OFFSET_ACTOR + 2);
31@@ -197,8 +198,14 @@
32 egg_dbus_array_seq_add_fixed (payload_data, payload->data[i]);
33 }
34 }
35-
36- return egg_zeitgeist_event_new (event_data, subjects_data, payload_data);
37+
38+ result = egg_zeitgeist_event_new (event_data, subjects_data, payload_data);
39+
40+ g_strfreev (event_data);
41+ g_object_unref (subjects_data);
42+ g_object_unref (payload_data);
43+
44+ return result;
45 }
46
47 GPtrArray*

Subscribers

People subscribed via source and target branches