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: Wed, 04 Apr 2007 08:46:42 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/04/04 08:46:42

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

Log message:
                * server/asobj/xmlnode.cpp (stringify): stop feeding NULL
                  pointers to output operators !
                * server/asobj/xml.cpp (xml_new): support a string as first
                  argument to constructor.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2773&r2=1.2774
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.cpp?cvsroot=gnash&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.cpp?cvsroot=gnash&r1=1.21&r2=1.22

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2773
retrieving revision 1.2774
diff -u -b -r1.2773 -r1.2774
--- ChangeLog   4 Apr 2007 07:53:28 -0000       1.2773
+++ ChangeLog   4 Apr 2007 08:46:41 -0000       1.2774
@@ -1,5 +1,12 @@
 2007-04-04 Sandro Santilli <address@hidden>
 
+       * server/asobj/xmlnode.cpp (stringify): stop feeding NULL 
+         pointers to output operators !
+       * server/asobj/xml.cpp (xml_new): support a string as first
+         argument to constructor.
+
+2007-04-04 Sandro Santilli <address@hidden>
+
        * server/asobj/xml.{cpp,h}: tu_string => std::string
        * server/asobj/xmlsocket.cpp: provide a builtin onData
          event handler to XMLSocket instances.

Index: server/asobj/xml.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- server/asobj/xml.cpp        4 Apr 2007 07:53:28 -0000       1.29
+++ server/asobj/xml.cpp        4 Apr 2007 08:46:42 -0000       1.30
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: xml.cpp,v 1.29 2007/04/04 07:53:28 strk Exp $ */
+/* $Id: xml.cpp,v 1.30 2007/04/04 08:46:42 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -106,9 +106,9 @@
     _bytes_total(0)
 {
     GNASH_REPORT_FUNCTION;
-#ifdef DEBUG_MEMORY_ALLOCATION
+//#ifdef DEBUG_MEMORY_ALLOCATION
     log_msg("Creating XML data at %p \n", this);
-#endif
+//#endif
     parseXML(xml_in);
 }
 
@@ -279,7 +279,7 @@
     xmlNodePtr cur;
 
     if (document == 0) {
-        log_error("Can't load XML file!\n");
+        log_error("Can't load XML file!");
         return false;
     }
 
@@ -292,6 +292,8 @@
         _children.push_back(child);
     }  
 
+    log_msg("parseDoc: %u childrens for XML %p after parsing", 
_children.size(), (void*)this);
+
     _loaded = true;
     return true;
 }
@@ -606,7 +608,9 @@
   
     // log_msg("%s: nargs=%d\n", __FUNCTION__, fn.nargs);
   
-    if (fn.nargs > 0 && fn.arg(0).is_object() )
+    if ( fn.nargs > 0 )
+    {
+        if ( fn.arg(0).is_object() )
     {
            boost::intrusive_ptr<as_object> obj = fn.env().top(0).to_object();
         xml_obj = boost::dynamic_pointer_cast<XML>(obj);
@@ -617,6 +621,21 @@
         }
     }
 
+        std::string xml_in = fn.arg(0).to_std_string();
+        if ( xml_in.empty() )
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            log_aserror("First arg given to XML constructor (%s) evaluates to 
the empty string",
+                    fn.arg(0).to_debug_string().c_str());
+            );
+        }
+        else
+        {
+            xml_obj = new XML(xml_in);
+            return as_value(xml_obj.get());
+        }
+    }
+
     xml_obj = new XML;
     //log_msg("\tCreated New XML object at %p\n", xml_obj);
 

Index: server/asobj/xmlnode.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- server/asobj/xmlnode.cpp    3 Apr 2007 13:22:24 -0000       1.21
+++ server/asobj/xmlnode.cpp    4 Apr 2007 08:46:42 -0000       1.22
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: xmlnode.cpp,v 1.21 2007/04/03 13:22:24 strk Exp $ */
+/* $Id: xmlnode.cpp,v 1.22 2007/04/04 08:46:42 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -336,12 +336,18 @@
 XMLNode::stringify(const XMLNode& xml, std::ostream& xmlout) 
 {
 //    GNASH_REPORT_FUNCTION;
-    const char    *nodevalue = xml.nodeValue();
-    const char    *nodename = xml.nodeName();
+    const char* nodevalue = xml.nodeValue();
+    const char* nodename = xml.nodeName();
+
     
 //    log_msg("%s: processing for object %s <%p>\n", __PRETTY_FUNCTION__, 
nodename, xml);
 
+    log_msg("Stringifying node %p with name %s, value %s, %u attributes and %u 
childs",
+                    (void*)&xml, nodename, nodevalue, xml._attributes.size(), 
xml._children.size());
+
     // Create the beginning of the tag
+    if (nodename)
+    {
     xmlout << "<" << nodename;
     
     // Process the attributes, if any
@@ -353,27 +359,27 @@
         xmlout << " " << xa.name() << "=\"" << xa.value() << "\"";
     }
 
-    xmlout << ">";             // closing symbol for this tag
+        xmlout << ">";
+    }
     
-    if (nodevalue) {
+    // Node value first, then childs
+    if ( nodevalue )
+    {
        xmlout << nodevalue;
-       xmlout << "</" << nodename << ">";
     }
 
-//    int length = xml->_children.size();
-//    log_msg("\tProcessing %d children nodes for %s", length, nodename);
-    
+    // Childs, after node value.
     ChildList::const_iterator itx;
     for (itx = xml._children.begin(); itx != xml._children.end(); itx++)
     {
 //         log_msg("Found One XMLNode child !!!! %s <%p>\n", 
(*itx)->nodeName(), (void*)*itx);
 //         cerr << "<" << (*it)->nodeName() << ">" << endl;
         (*itx)->toString(xmlout);
-        //x->toString(xmlout);
     }
 
-    if (!nodevalue)
+    if (nodename)
     {
+           assert(nodename);
            xmlout << "</" << nodename << ">";
     }
 
@@ -566,12 +572,13 @@
 static as_value
 xmlnode_tostring(const fn_call& fn)
 {
-//    GNASH_REPORT_FUNCTION;
+    GNASH_REPORT_FUNCTION;
     
     boost::intrusive_ptr<XMLNode> ptr = ensureType<XMLNode>(fn.this_ptr);
     
     std::stringstream ss;
     ptr->toString(ss);
+    log_msg("Stringstream: %s", ss.str().c_str());
 
     return as_value(ss.str());
 }




reply via email to

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