gnash-commit
[Top][All Lists]
Advanced

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

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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/xmlnode.cpp server...
Date: Thu, 18 Jan 2007 14:23:17 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/01/18 14:23:17

Modified files:
        .              : ChangeLog 
        server/asobj   : xmlnode.cpp xmlnode.h 
        testsuite/actionscript.all: XMLNode.as 

Log message:
                * server/asobj/xmlnode.{cpp,h}: (nodeValueSet): always replace
                  previous value. (xmlnode_nodevalue, xmlnode_nodename): act
                  both as a setter and a getter.
                * testsuite/actionscript.all/XMLNode.as: another unexpected 
success.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2131&r2=1.2132
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.h?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/XMLNode.as?cvsroot=gnash&r1=1.6&r2=1.7

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2131
retrieving revision 1.2132
diff -u -b -r1.2131 -r1.2132
--- ChangeLog   18 Jan 2007 13:43:06 -0000      1.2131
+++ ChangeLog   18 Jan 2007 14:23:17 -0000      1.2132
@@ -1,5 +1,12 @@
 2007-01-18 Sandro Santilli <address@hidden>
 
+       * server/asobj/xmlnode.{cpp,h}: (nodeValueSet): always replace
+         previous value. (xmlnode_nodevalue, xmlnode_nodename): act
+         both as a setter and a getter.
+       * testsuite/actionscript.all/XMLNode.as: another unexpected success.
+
+2007-01-18 Sandro Santilli <address@hidden>
+
        * server/asobj/: Global.cpp, xml.cpp, xmlnode.{cpp,h}:
          Port XMLNode class to current correct architecture.
        * testsuite/actionscript.all/XML.as: unexpected pass ;)

Index: server/asobj/xmlnode.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/xmlnode.cpp    18 Jan 2007 13:43:06 -0000      1.3
+++ server/asobj/xmlnode.cpp    18 Jan 2007 14:23:17 -0000      1.4
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: xmlnode.cpp,v 1.3 2007/01/18 13:43:06 strk Exp $ */
+/* $Id: xmlnode.cpp,v 1.4 2007/01/18 14:23:17 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -60,7 +60,6 @@
 static void xmlnode_insertbefore(const fn_call& fn);
 static void xmlnode_removenode(const fn_call& fn);
 static void xmlnode_tostring(const fn_call& fn);
-static void do_nothing(const fn_call& fn);
 static void xmlnode_nodevalue(const fn_call& fn);
 static void xmlnode_nodename(const fn_call& fn);
 
@@ -131,12 +130,11 @@
 {
   int len = strlen(value) + 1;
  
-  if (!_value) {
-    //_value = (char *)new char[len];
+  // Should we use std::string here ?
+  delete [] _value;
     _value = new char[len];
     memset(_value, 0, len);
     strcpy(_value, value);
-  }
 }
 
 /// \brief Get the type of an XML Node.
@@ -382,6 +380,15 @@
   
     xml_obj = new xmlnode_as_object;
 
+    if ( fn.nargs > 0 )
+    {
+           
xml_obj->obj.nodeTypeSet(static_cast<xmlElementType>(fn.arg(0).to_number()));
+           if ( fn.nargs > 1 )
+           {
+               xml_obj->obj.nodeValueSet(fn.arg(1).to_string());
+           }
+    }
+
     fn.result->set_as_object(xml_obj);
 }
 
@@ -471,22 +478,18 @@
     fn.result->set_bool(ptr->obj.hasChildNodes());
 }
 
-static void
-do_nothing(const fn_call& fn)
-{
-       log_msg("Doing nothing");
-}
-
 // Both a getter and a setter for nodeValue
 static void
 xmlnode_nodevalue(const fn_call& fn)
 {
-       GNASH_REPORT_FUNCTION;
+       //GNASH_REPORT_FUNCTION;
 
        assert(dynamic_cast<xmlnode_as_object*>(fn.this_ptr));
        xmlnode_as_object *ptr = static_cast<xmlnode_as_object*>(fn.this_ptr);
     
+       //log_msg("xmlnode_nodevalue called with %d args against 'this' = %p", 
fn.nargs, ptr);
        if ( fn.nargs == 0 ) {
+               //log_msg("  nodeValue() returns '%s'", ptr->obj.nodeValue());
                const char* val = ptr->obj.nodeValue();
                if ( val ) {
                        fn.result->set_string(val);
@@ -494,6 +497,7 @@
                        fn.result->set_null();
                }
        } else {
+               //log_msg(" arg(0) == '%s'", fn.arg(0).to_string());
                ptr->obj.nodeValueSet(fn.arg(0).to_string());
        }
 }

Index: server/asobj/xmlnode.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/xmlnode.h      18 Jan 2007 13:43:06 -0000      1.3
+++ server/asobj/xmlnode.h      18 Jan 2007 14:23:17 -0000      1.4
@@ -55,10 +55,19 @@
     const char *nodeName();
     const char *nodeValue();
     int nodeType();
+    void nodeTypeSet(xmlElementType type) {
+           _type = type;
+    }
 
     //    char *valueGet();
   
+    /// Set name of this node, but only if it doesn't have a name yet
+    //
+    /// TODO: check if this is the correct behaviour
+    ///
     void nodeNameSet(const char *name);
+
+    /// Set value of this node, overriding any previous value
     void nodeValueSet(const char *value);
     //  nodeType       XML.nodeType
 

Index: testsuite/actionscript.all/XMLNode.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/XMLNode.as,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- testsuite/actionscript.all/XMLNode.as       27 Nov 2006 09:17:28 -0000      
1.6
+++ testsuite/actionscript.all/XMLNode.as       18 Jan 2007 14:23:17 -0000      
1.7
@@ -22,7 +22,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: XMLNode.as,v 1.6 2006/11/27 09:17:28 strk Exp $";
+rcsid="$Id: XMLNode.as,v 1.7 2007/01/18 14:23:17 strk Exp $";
 
 #include "dejagnu.as"
 
@@ -48,7 +48,7 @@
 textnode.nodeName = "foo";
 check_equals(textnode.nodeName, "foo");
 
-xcheck_equals (textnode.nodeValue, "text content");
+check_equals (textnode.nodeValue, "text content");
 textnode.nodeValue = "bar";
 check_equals (textnode.nodeValue, "bar");
 




reply via email to

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