diff options
Diffstat (limited to 'backends/pulse/pulse-port-switch.c')
-rw-r--r-- | backends/pulse/pulse-port-switch.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/backends/pulse/pulse-port-switch.c b/backends/pulse/pulse-port-switch.c index db06a7c..71e0709 100644 --- a/backends/pulse/pulse-port-switch.c +++ b/backends/pulse/pulse-port-switch.c @@ -53,6 +53,7 @@ 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) @@ -73,6 +74,7 @@ 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; @@ -147,6 +149,20 @@ pulse_port_switch_init (PulsePortSwitch *swtch) PulsePortSwitchPrivate); } +static void +pulse_port_switch_dispose (GObject *object) +{ + PulsePortSwitch *swtch; + + swtch = PULSE_PORT_SWITCH (object); + + if (swtch->priv->ports != NULL) { + g_list_free_full (swtch->priv->ports, g_object_unref); + swtch->priv->ports = NULL; + } + G_OBJECT_CLASS (pulse_port_switch_parent_class)->dispose (object); +} + PulseStream * pulse_port_switch_get_stream (PulsePortSwitch *swtch) { |