gst/: Fix memleak (#159215).
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 16 Dec 2004 11:39:00 +0000 (11:39 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 16 Dec 2004 11:39:00 +0000 (11:39 +0000)
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst-libs/gst/resample/resample.c: (gst_resample_close):
* gst-libs/gst/resample/resample.h:
* gst/audioscale/gstaudioscale.c:
Fix memleak (#159215).

ChangeLog
gst-libs/gst/resample/resample.c
gst-libs/gst/resample/resample.h

index 1957cac..a5a0980 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-12-16  Sebastien Cote  <sc5@hermes.usherb.ca>
+
+       Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
+       * gst-libs/gst/resample/resample.c: (gst_resample_close):
+       * gst-libs/gst/resample/resample.h:
+       * gst/audioscale/gstaudioscale.c:
+         Fix memleak (#159215).
+
 2004-12-16  Toni Willberg  <toniw@iki.fi>
 
        Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
index 63ade39..cd89915 100644 (file)
@@ -133,6 +133,22 @@ gst_resample_reinit (gst_resample_t * r)
   }
 }
 
+void
+gst_resample_close (gst_resample_t * r)
+{
+  if (r->buffer) {
+    free (r->buffer);
+    r->buffer = NULL;
+    r->buffer_len = 0;
+  }
+  if (r->hack_union.s.out_tmp) {
+    free (r->hack_union.s.out_tmp);
+    r->hack_union.s.out_tmp = NULL;
+    r->hack_union.s.out_tmp_len = 0;
+  }
+
+}
+
 /*
  * Prepare to be confused.
  *
@@ -252,8 +268,7 @@ gst_resample_nearest_s16 (gst_resample_t * r)
       SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
       break;
     case 2:
-      SCALE_LOOP (o_ptr[0] = i_ptr[0];
-          o_ptr[1] = i_ptr[1], 2);
+      SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2);
       break;
     default:
     {
@@ -612,8 +627,7 @@ gst_resample_nearest_float (gst_resample_t * r)
       SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
       break;
     case 2:
-      SCALE_LOOP (o_ptr[0] = i_ptr[0];
-          o_ptr[1] = i_ptr[1], 2);
+      SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2);
       break;
     default:
     {
index 34d6f9d..e887951 100644 (file)
@@ -98,7 +98,8 @@ void gst_resample_init(gst_resample_t *r);
 
 void gst_resample_reinit(gst_resample_t *r);
 
+void gst_resample_close (gst_resample_t * r);
+
 void gst_resample_scale(gst_resample_t *r, void *i_buf, unsigned int size);
 
 #endif /* __GST_RESAMPLE_H__ */
-