gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/asobj/xml.cpp server/aso...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/xml.cpp server/aso...
Date: Mon, 18 Feb 2008 23:13:53 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/18 23:13:53

Modified files:
        .              : ChangeLog 
        server/asobj   : xml.cpp xml.h 

Log message:
        better compatibility for XML AS class:
        return undefined from XML.getBytesTotal() when not
        loading, return last-load info when load ends.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5682&r2=1.5683
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.cpp?cvsroot=gnash&r1=1.72&r2=1.73
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.h?cvsroot=gnash&r1=1.28&r2=1.29

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5682
retrieving revision 1.5683
diff -u -b -r1.5682 -r1.5683
--- ChangeLog   18 Feb 2008 22:35:30 -0000      1.5682
+++ ChangeLog   18 Feb 2008 23:13:51 -0000      1.5683
@@ -1,5 +1,11 @@
 2008-02-18 Sandro Santilli <address@hidden>
 
+       * server/asobj/xml.{cpp,h}: better compatibility:
+         return undefined from XML.getBytesTotal() when not
+         loading, return last-load info when load ends.
+
+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.
 

Index: server/asobj/xml.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.cpp,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -b -r1.72 -r1.73
--- server/asobj/xml.cpp        18 Feb 2008 18:13:14 -0000      1.72
+++ server/asobj/xml.cpp        18 Feb 2008 23:13:52 -0000      1.73
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: xml.cpp,v 1.72 2008/02/18 18:13:14 strk Exp $ */
+/* $Id: xml.cpp,v 1.73 2008/02/18 23:13:52 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -90,7 +90,9 @@
     _loaded(-1), 
     _status(sOK),
     _loadThreads(),
-    _loadCheckerTimer(0)
+    _loadCheckerTimer(0),
+    _bytesTotal(0),
+    _bytesLoaded(0)
 {
     //GNASH_REPORT_FUNCTION;
 #ifdef DEBUG_MEMORY_ALLOCATION
@@ -110,7 +112,9 @@
     _loaded(-1), 
     _status(sOK),
     _loadThreads(),
-    _loadCheckerTimer(0)
+    _loadCheckerTimer(0),
+    _bytesTotal(0),
+    _bytesLoaded(0)
 {
     //GNASH_REPORT_FUNCTION;
 #ifdef DEBUG_MEMORY_ALLOCATION
@@ -425,12 +429,18 @@
 #endif
     }
 
+    _bytesLoaded = _bytesTotal = 0;
+
 }
 
 size_t
 XML::getBytesLoaded() const
 {
-    if ( _loadThreads.empty() ) return 0;
+    if ( _loadThreads.empty() )
+    {
+        return _bytesLoaded;
+        return 0;
+    }
     LoadThread* lt = _loadThreads.front();
     return lt->getBytesLoaded();
 }
@@ -438,7 +448,10 @@
 size_t
 XML::getBytesTotal() const
 {
-    if ( _loadThreads.empty() ) return 0;
+    if ( _loadThreads.empty() ) 
+    {
+        return _bytesTotal;
+    }
     LoadThread* lt = _loadThreads.front();
     return lt->getBytesTotal();
 }
@@ -468,7 +481,7 @@
 #endif
         if ( lt->completed() )
         {
-            size_t xmlsize = lt->getBytesTotal();
+            size_t xmlsize = lt->getBytesLoaded();
             boost::scoped_array<char> buf(new char[xmlsize+1]);
             size_t actuallyRead = lt->read(buf.get(), xmlsize);
             if ( actuallyRead != xmlsize )
@@ -477,13 +490,15 @@
                                // possibility which lacks documentation (thus 
a bug in documentation)
                                //
 #ifdef DEBUG_XML_LOADS
-                               log_debug("LoadThread::getBytesTotal() returned 
%d but ::read(%d) returned %d",
+                               log_debug("LoadThread::getBytesLoaded() 
returned %d but ::read(%d) returned %d",
                                        xmlsize, xmlsize, actuallyRead);
 #endif
                        }
             buf[actuallyRead] = '\0';
             as_value dataVal(buf.get()); // memory copy here (optimize?)
 
+            _bytesTotal = lt->getBytesTotal();
+            _bytesLoaded = lt->getBytesLoaded();
             it = _loadThreads.erase(it);
             delete lt; // supposedly joins the thread...
 
@@ -826,7 +841,7 @@
     }
        else
        {
-               return as_value();
+               return as_value(0);
     }
 }
 

Index: server/asobj/xml.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- server/asobj/xml.h  18 Feb 2008 18:13:15 -0000      1.28
+++ server/asobj/xml.h  18 Feb 2008 23:13:53 -0000      1.29
@@ -231,6 +231,9 @@
     /// Scan the LoadThread queue (_loadThreads) to see if any of
     /// them completed. If any did, invoke the onData event
     void checkLoads();
+
+    size_t _bytesTotal;
+    size_t _bytesLoaded;
 };
 
 




reply via email to

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