Merge lp:~3v1n0/bamf/dispose-fixes into lp:bamf/0.4

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Jason Smith
Approved revision: 450
Merged at revision: 448
Proposed branch: lp:~3v1n0/bamf/dispose-fixes
Merge into: lp:bamf/0.4
Diff against target: 155 lines (+35/-33)
4 files modified
lib/libbamf/bamf-application.c (+5/-5)
lib/libbamf/bamf-control.c (+16/-0)
lib/libbamf/bamf-view.c (+14/-2)
lib/libbamf/bamf-window.c (+0/-26)
To merge this branch: bzr merge lp:~3v1n0/bamf/dispose-fixes
Reviewer Review Type Date Requested Status
Jason Smith (community) Approve
Review via email: mp+94824@code.launchpad.net

Description of the change

Making libbamf correctly free items when disposing BamfView and BamfControl, plus some misc cleanups

To post a comment you must log in.
Revision history for this message
Jason Smith (jassmith) wrote :

+1 all sensible refactors

refactoring does not require testing as this makes no control logic changes

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/libbamf/bamf-application.c'
2--- lib/libbamf/bamf-application.c 2012-02-08 15:59:27 +0000
3+++ lib/libbamf/bamf-application.c 2012-02-27 18:39:37 +0000
4@@ -259,22 +259,22 @@
5 {
6 BamfApplication *self;
7 BamfApplicationPrivate *priv;
8-
9+
10 self = BAMF_APPLICATION (object);
11 priv = self->priv;
12-
13+
14 if (priv->application_type)
15 {
16 g_free (priv->application_type);
17 priv->application_type = NULL;
18 }
19-
20+
21 if (priv->desktop_file)
22 {
23 g_free (priv->desktop_file);
24 priv->desktop_file = NULL;
25- }
26-
27+ }
28+
29 if (priv->proxy)
30 {
31 dbus_g_proxy_disconnect_signal (priv->proxy,
32
33=== modified file 'lib/libbamf/bamf-control.c'
34--- lib/libbamf/bamf-control.c 2010-08-18 23:22:58 +0000
35+++ lib/libbamf/bamf-control.c 2012-02-27 18:39:37 +0000
36@@ -60,11 +60,27 @@
37 */
38
39 static void
40+bamf_control_dispose (GObject *object)
41+{
42+ BamfControl *self = BAMF_CONTROL (object);
43+
44+ if (self->priv->proxy)
45+ {
46+ g_object_unref (self->priv->proxy);
47+ self->priv->proxy = NULL;
48+ }
49+
50+ if (G_OBJECT_CLASS (bamf_control_parent_class)->dispose)
51+ G_OBJECT_CLASS (bamf_control_parent_class)->dispose (object);
52+}
53+
54+static void
55 bamf_control_class_init (BamfControlClass *klass)
56 {
57 GObjectClass *obj_class = G_OBJECT_CLASS (klass);
58
59 g_type_class_add_private (obj_class, sizeof (BamfControlPrivate));
60+ obj_class->dispose = bamf_control_dispose;
61 }
62
63
64
65=== modified file 'lib/libbamf/bamf-view.c'
66--- lib/libbamf/bamf-view.c 2012-02-15 23:09:48 +0000
67+++ lib/libbamf/bamf-view.c 2012-02-27 18:39:37 +0000
68@@ -150,7 +150,7 @@
69 BamfViewPrivate *priv;
70
71 g_return_val_if_fail (BAMF_IS_VIEW (view), NULL);
72-
73+
74 if (BAMF_VIEW_GET_CLASS (view)->get_children)
75 return BAMF_VIEW_GET_CLASS (view)->get_children (view);
76
77@@ -181,7 +181,7 @@
78
79 for (i = len-1; i >= 0; i--)
80 {
81- BamfView *view = bamf_factory_view_for_path (bamf_factory_get_default (), children[i]);
82+ view = bamf_factory_view_for_path (bamf_factory_get_default (), children[i]);
83 results = g_list_prepend (results, g_object_ref (view));
84 }
85
86@@ -677,6 +677,18 @@
87 priv->type = NULL;
88 }
89
90+ if (priv->local_icon)
91+ {
92+ g_free (priv->local_icon);
93+ priv->local_icon = NULL;
94+ }
95+
96+ if (priv->local_name)
97+ {
98+ g_free (priv->local_name);
99+ priv->local_name = NULL;
100+ }
101+
102 if (priv->cached_children)
103 {
104 g_list_free_full (priv->cached_children, g_object_unref);
105
106=== modified file 'lib/libbamf/bamf-window.c'
107--- lib/libbamf/bamf-window.c 2012-02-15 05:45:13 +0000
108+++ lib/libbamf/bamf-window.c 2012-02-27 18:39:37 +0000
109@@ -55,9 +55,6 @@
110 guint32 pid;
111 time_t last_active;
112 gint monitor;
113- gchar *application_id;
114- gchar *unique_bus_name;
115- gchar *dbus_menu_object_path;
116 BamfWindowMaximizationType maximized;
117 };
118
119@@ -290,11 +287,6 @@
120 g_return_val_if_fail (BAMF_IS_WINDOW (self), NULL);
121 priv = self->priv;
122
123- if (priv->application_id)
124- {
125- return priv->application_id;
126- }
127-
128 if (!bamf_view_remote_ready (BAMF_VIEW (self)))
129 return NULL;
130
131@@ -408,24 +400,6 @@
132 priv->proxy = NULL;
133 }
134
135- if (priv->application_id)
136- {
137- g_free (priv->application_id);
138- priv->application_id = NULL;
139- }
140-
141- if (priv->unique_bus_name)
142- {
143- g_free (priv->unique_bus_name);
144- priv->unique_bus_name = NULL;
145- }
146-
147- if (priv->dbus_menu_object_path)
148- {
149- g_free (priv->dbus_menu_object_path);
150- priv->dbus_menu_object_path = NULL;
151- }
152-
153 if (G_OBJECT_CLASS (bamf_window_parent_class)->dispose)
154 G_OBJECT_CLASS (bamf_window_parent_class)->dispose (object);
155 }

Subscribers

People subscribed via source and target branches