gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog backend/sound_handler_gst.cpp


From: Bastiaan Jacques
Subject: [Gnash-commit] gnash ChangeLog backend/sound_handler_gst.cpp
Date: Tue, 25 Jul 2006 23:05:13 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Bastiaan Jacques <bjacques>     06/07/25 23:05:12

Modified files:
        .              : ChangeLog 
        backend        : sound_handler_gst.cpp 

Log message:
        When reallocating, don't forget to copy the buffer contents.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.520&r2=1.521
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/sound_handler_gst.cpp?cvsroot=gnash&r1=1.4&r2=1.5

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.520
retrieving revision 1.521
diff -u -b -r1.520 -r1.521
--- ChangeLog   25 Jul 2006 22:46:36 -0000      1.520
+++ ChangeLog   25 Jul 2006 23:05:12 -0000      1.521
@@ -1,3 +1,8 @@
+2006-07-26 Bastiaan Jacques <address@hidden>
+
+       * backend/sound_handler_gst.cpp: When reallocating, don't forget to
+       copy the old buffer contents.
+
 2006-07-25 Sandro Santilli <address@hidden>
 
        * configure.ac: move XML2 and GLIB macro calls before gstreamer

Index: backend/sound_handler_gst.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/sound_handler_gst.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- backend/sound_handler_gst.cpp       25 Jul 2006 19:27:54 -0000      1.4
+++ backend/sound_handler_gst.cpp       25 Jul 2006 23:05:12 -0000      1.5
@@ -257,15 +257,17 @@
                
                if (handle_id >= 0 && handle_id < m_sound_data.size())
                {
-                       sound_data* cur_data = m_sound_data[handle_id]->data;
-                       unsigned int cur_data_size = cur_data->data_size;
                        
                        // Reallocate the required memory.
-                       delete [] cur_data;
-                       cur_data = new guint8[data_bytes + cur_data_size];
-                       cur_data_size += data_bytes;
+                       guint8* tmp_data = new guint8[data_bytes + 
m_sound_data[handle_id]->data_size];
+                       memcpy(tmp_data, m_sound_data[handle_id]->data, 
m_sound_data[handle_id]->data_size);
+                       memcpy(tmp_data + m_sound_data[handle_id]->data_size, 
data, data_bytes);
+                       delete [] m_sound_data[handle_id]->data;
+                       m_sound_data[handle_id]->data = tmp_data;
 
-                       return cur_data_size - data_bytes;
+                       m_sound_data[handle_id]->data_size += data_bytes;
+
+                       return m_sound_data[handle_id]->data_size - data_bytes;
                }
                return 0;
                // FIXME: if the playback of the stream has already started 
we'll need to update the struct
@@ -288,10 +290,12 @@
                                GST_BUFFER_SIZE(buffer) = 
gstelements->data_size;
                        }
 
-                       unsigned int buf_size = GST_BUFFER_SIZE(buffer);
+                       // Reallocate the required memory.
+                       guint8* tmp_buf = new guint8[GST_BUFFER_SIZE(buffer)];
+                       memcpy(tmp_buf, GST_BUFFER_DATA(buffer), 
sizeof(buffer));
 
                        delete [] GST_BUFFER_DATA(buffer);
-                       GST_BUFFER_DATA(buffer) = new guint8[buf_size];
+                       GST_BUFFER_DATA(buffer) = tmp_buf;
                }
 
                // This shouldn't happen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]