diff options
author | Michal Ratajsky <[email protected]> | 2014-08-20 18:53:26 +0200 |
---|---|---|
committer | Michal Ratajsky <[email protected]> | 2014-08-20 18:53:26 +0200 |
commit | 0325b6223a23ebd75fbd8c9244baab00facec126 (patch) | |
tree | 8547bdc4a9e875d931eddbeb81e34ec37ddfbfef /backends/pulse/pulse-port-switch.c | |
parent | 9956b2a9465c538c8792235c1ee02d2f90b84641 (diff) | |
download | libmatemixer-0325b6223a23ebd75fbd8c9244baab00facec126.tar.bz2 libmatemixer-0325b6223a23ebd75fbd8c9244baab00facec126.tar.xz |
Fix some refcounting and stream control parent setting issues
Diffstat (limited to 'backends/pulse/pulse-port-switch.c')
-rw-r--r-- | backends/pulse/pulse-port-switch.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/backends/pulse/pulse-port-switch.c b/backends/pulse/pulse-port-switch.c index 08f1543..db06a7c 100644 --- a/backends/pulse/pulse-port-switch.c +++ b/backends/pulse/pulse-port-switch.c @@ -53,7 +53,6 @@ static void pulse_port_switch_set_property (GObject *object, GParamSpec *pspec); static void pulse_port_switch_init (PulsePortSwitch *swtch); -static void pulse_port_switch_dispose (GObject *object); G_DEFINE_ABSTRACT_TYPE (PulsePortSwitch, pulse_port_switch, MATE_MIXER_TYPE_SWITCH) @@ -74,7 +73,6 @@ pulse_port_switch_class_init (PulsePortSwitchClass *klass) MateMixerSwitchClass *switch_class; object_class = G_OBJECT_CLASS (klass); - object_class->dispose = pulse_port_switch_dispose; object_class->get_property = pulse_port_switch_get_property; object_class->set_property = pulse_port_switch_set_property; @@ -129,7 +127,11 @@ pulse_port_switch_set_property (GObject *object, switch (param_id) { case PROP_STREAM: /* Construct-only object */ - swtch->priv->stream = g_value_dup_object (value); + swtch->priv->stream = g_value_get_object (value); + + if (swtch->priv->stream != NULL) + g_object_add_weak_pointer (G_OBJECT (swtch->priv->stream), + (gpointer *) &swtch->priv->stream); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); @@ -145,18 +147,6 @@ pulse_port_switch_init (PulsePortSwitch *swtch) PulsePortSwitchPrivate); } -static void -pulse_port_switch_dispose (GObject *object) -{ - PulsePortSwitch *swtch; - - swtch = PULSE_PORT_SWITCH (object); - - g_clear_object (&swtch->priv->stream); - - G_OBJECT_CLASS (pulse_port_switch_parent_class)->dispose (object); -} - PulseStream * pulse_port_switch_get_stream (PulsePortSwitch *swtch) { |