gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog libbase/LoadThread.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog libbase/LoadThread.cpp
Date: Mon, 18 Feb 2008 22:35:31 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/18 22:35:31

Modified files:
        .              : ChangeLog 
        libbase        : LoadThread.cpp 

Log message:
        update _streamSize on eof, as the http-advertised stream size can't be
        relied upon.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5681&r2=1.5682
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/LoadThread.cpp?cvsroot=gnash&r1=1.19&r2=1.20

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5681
retrieving revision 1.5682
diff -u -b -r1.5681 -r1.5682
--- ChangeLog   18 Feb 2008 20:25:08 -0000      1.5681
+++ ChangeLog   18 Feb 2008 22:35:30 -0000      1.5682
@@ -1,3 +1,8 @@
+2008-02-18 Sandro Santilli <address@hidden>
+
+       * libbase/LoadThread.cpp: update _streamSize on eof, as the
+         http-advertised stream size can't be relied upon.
+
 2008-02-18 Russ Nelson <address@hidden>
 
         * libmedia/gst/VideoDecoderGst.cpp

Index: libbase/LoadThread.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/LoadThread.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- libbase/LoadThread.cpp      21 Jan 2008 20:55:43 -0000      1.19
+++ libbase/LoadThread.cpp      18 Feb 2008 22:35:31 -0000      1.20
@@ -16,9 +16,10 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-// $Id: LoadThread.cpp,v 1.19 2008/01/21 20:55:43 rsavoye Exp $
+// $Id: LoadThread.cpp,v 1.20 2008/02/18 22:35:31 strk Exp $
 
 #include "LoadThread.h"
+#include "log.h"
 
 #if defined(_WIN32) || defined(WIN32)
 # include <windows.h>  // for sleep()
@@ -295,7 +296,11 @@
        _loadPosition = ret;
        _streamSize = _stream->get_size();
 
-    if ( ret < setupSize ) _completed = true;
+       if ( ret < setupSize )
+       {
+               _completed = true;
+               if ( _streamSize < _loadPosition ) _streamSize = _loadPosition;
+       }
 }
 
 void LoadThread::downloadThread(LoadThread* lt)
@@ -317,8 +322,12 @@
 
 void LoadThread::fillCache()
 {
+       // TODO: is this needed ? Should it be an assertion ?
        if (_loadPosition >= _streamSize) {
                _completed = true;
+               _streamSize = _loadPosition;
+               // I don't see how should this happen...
+               gnash::log_error("LoadThread::fillCache: _loadPosition:%ld, 
_streamSize:%ld", _loadPosition, _streamSize);
                return;
        }
 
@@ -357,15 +366,19 @@
        }
 
        _loadPosition = _loadPosition + ret;
+       if ( _streamSize < _loadPosition ) _streamSize = _loadPosition;
        _actualPosition = _loadPosition;
 
 }
 
 void LoadThread::download()
 {
+       // TODO: is this needed ? Should it be an assertion ?
        if (_loadPosition >= _streamSize) {
                _loadPosition = _streamSize;
                _completed = true;
+               _streamSize = _loadPosition;
+               gnash::log_error("LoadThread::download: _loadPosition:%ld, 
_streamSize:%ld", _loadPosition, _streamSize);
                return;
        }
 
@@ -386,7 +399,8 @@
        }
 
        _loadPosition = pos;
-       assert(_loadPosition <= _streamSize);
+       // _streamSize can't be relied upon
+       if ( _streamSize < _loadPosition ) _streamSize = _loadPosition;
        _actualPosition = pos;
 
 }




reply via email to

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