diff options
Diffstat (limited to 'gvc-mixer-stream.c')
-rw-r--r-- | gvc-mixer-stream.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gvc-mixer-stream.c b/gvc-mixer-stream.c index 5a5c8e6..d3e01b6 100644 --- a/gvc-mixer-stream.c +++ b/gvc-mixer-stream.c @@ -88,6 +88,30 @@ static void gvc_mixer_stream_finalize (GObject *object); G_DEFINE_ABSTRACT_TYPE (GvcMixerStream, gvc_mixer_stream, G_TYPE_OBJECT) +static void +free_port (GvcMixerStreamPort *p) +{ + g_free (p->port); + g_free (p->human_port); + g_slice_free (GvcMixerStreamPort, p); +} + +static GvcMixerStreamPort * +dup_port (GvcMixerStreamPort *p) +{ + GvcMixerStreamPort *m; + + m = g_slice_new (GvcMixerStreamPort); + + *m = *p; + m->port = g_strdup (p->port); + m->human_port = g_strdup (p->human_port); + + return m; +} + +G_DEFINE_BOXED_TYPE (GvcMixerStreamPort, gvc_mixer_stream_port, dup_port, free_port) + static guint32 get_next_stream_serial (void) { @@ -946,14 +970,6 @@ gvc_mixer_stream_init (GvcMixerStream *stream) } static void -free_port (GvcMixerStreamPort *p) -{ - g_free (p->port); - g_free (p->human_port); - g_free (p); -} - -static void gvc_mixer_stream_finalize (GObject *object) { GvcMixerStream *mixer_stream; |