diff options
| author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-08-31 13:38:08 +0100 | 
|---|---|---|
| committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-08-31 13:40:14 +0100 | 
| commit | 4cf513da9b5e64fed7daf8acbd9d1ef3b8453602 (patch) | |
| tree | 53c7bdc566d7f2c055ea71d438f5ff6b25d82b42 | |
| parent | d875e72b02b21c82b6d210ce3c054eb8ed3fcc1a (diff) | |
wavparse: clean up adapter properly
Reflow code so we don't try to clear or re-use an already-freed adapter.
| -rw-r--r-- | gst/wavparse/gstwavparse.c | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 1a6b62d7..abcbee12 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -2440,23 +2440,20 @@ gst_wavparse_sink_activate (GstPad * sinkpad)    GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));    gboolean res; -  if (wav->adapter) +  if (wav->adapter) { +    gst_adapter_clear (wav->adapter);      g_object_unref (wav->adapter); +    wav->adapter = NULL; +  }    if (gst_pad_check_pull_range (sinkpad)) {      GST_DEBUG ("going to pull mode");      wav->streaming = FALSE; -    if (wav->adapter) { -      gst_adapter_clear (wav->adapter); -      g_object_unref (wav->adapter); -    } -    wav->adapter = NULL;      res = gst_pad_activate_pull (sinkpad, TRUE);    } else {      GST_DEBUG ("going to push (streaming) mode");      wav->streaming = TRUE; -    if (wav->adapter == NULL) -      wav->adapter = gst_adapter_new (); +    wav->adapter = gst_adapter_new ();      res = gst_pad_activate_push (sinkpad, TRUE);    }    gst_object_unref (wav);  | 
