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: Sun, 17 Feb 2008 14:03:57 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/17 14:03:57

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

Log message:
        implement XML.sendAndLoad (untested).  See bug #22334.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5677&r2=1.5678
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.cpp?cvsroot=gnash&r1=1.70&r2=1.71
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.h?cvsroot=gnash&r1=1.26&r2=1.27

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5677
retrieving revision 1.5678
diff -u -b -r1.5677 -r1.5678
--- ChangeLog   17 Feb 2008 10:01:13 -0000      1.5677
+++ ChangeLog   17 Feb 2008 14:03:56 -0000      1.5678
@@ -1,3 +1,8 @@
+2008-02-17 Sandro Santilli <address@hidden>
+
+       * server/asobj/xml.{cpp,h}: implement XML.sendAndLoad (untested).
+         See bug #22334.
+
 2008-02-16 Benjamin Wolsey <address@hidden>
 
        * gui/gtk.cpp: add mnemonics to menu bar for accessibility.

Index: server/asobj/xml.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- server/asobj/xml.cpp        14 Feb 2008 13:27:56 -0000      1.70
+++ server/asobj/xml.cpp        17 Feb 2008 14:03:57 -0000      1.71
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: xml.cpp,v 1.70 2008/02/14 13:27:56 bwy Exp $ */
+/* $Id: xml.cpp,v 1.71 2008/02/17 14:03:57 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -599,10 +599,40 @@
     log_unimpl (__FUNCTION__);
 }
 
-void
-XML::sendAndLoad()
+bool
+XML::sendAndLoad(const URL& url)
 {
-    log_unimpl (__FUNCTION__);
+    //GNASH_REPORT_FUNCTION;
+
+    std::stringstream ss;
+    toString(ss);
+    const std::string& data = ss.str();
+
+    VM& vm = getVM();
+    string_table& st = vm.getStringTable();
+    string_table::key ctypeKey = st.find("contentType");
+    as_value ctypeVal;
+    if ( get_member(ctypeKey, &ctypeVal) )
+    {
+       log_unimpl ("Custom ContentType (%s) in XML.sendAndLoad", 
ctypeVal.to_debug_string().c_str());
+    }
+  
+    //log_msg(_("%s: mem is %d"), __FUNCTION__, mem);
+
+    std::auto_ptr<tu_file> str ( 
StreamProvider::getDefaultInstance().getStream(url, data) );
+    if ( ! str.get() ) 
+    {
+        log_error(_("Can't load XML file: %s (security?)"), url.str().c_str());
+        return false;
+        // TODO: this is still not correct.. we should still send onData 
later...
+        //as_value nullValue; nullValue.set_null();
+        //callMethod(NSV::PROP_ON_DATA, nullValue);
+    }
+
+    log_security(_("Loading XML file from url: '%s'"), url.str().c_str());
+    queueLoad(str);
+
+    return true;
 }
 
 
@@ -865,9 +895,22 @@
     GNASH_REPORT_FUNCTION;
     boost::intrusive_ptr<XML> ptr = ensureType<XML>(fn.this_ptr);
     
-//    return as_value(ptr->getAllocated());
-    ptr->sendAndLoad();
+    if ( ! fn.nargs )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("XML.sendAndLoad(): missing argument"));
+        );
     return as_value();
+    }
+
+    const std::string& filespec = fn.arg(0).to_string();
+
+    URL url(filespec, get_base_url());
+
+//    return as_value(ptr->getAllocated());
+    bool ret = ptr->sendAndLoad(url);
+
+    return ret; // TODO: check expected return values
 }
 
 static as_value

Index: server/asobj/xml.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- server/asobj/xml.h  14 Feb 2008 13:27:56 -0000      1.26
+++ server/asobj/xml.h  17 Feb 2008 14:03:57 -0000      1.27
@@ -154,7 +154,7 @@
 
     void send();
 
-    void sendAndLoad();
+    bool sendAndLoad(const URL& url);
 
     size_t getBytesLoaded() const;
     size_t getBytesTotal() const;




reply via email to

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