[Top][All Lists]
[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: |
Tue, 17 Apr 2007 12:58:21 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/04/17 12:58:20
Modified files:
. : ChangeLog
server/asobj : xmlnode.cpp xmlnode.h
testsuite/actionscript.all: XML.as
Log message:
* testsuite/actionscript.all/XML.as: add test
showing that removeNode doesn't recurse to
childrens.
* server/asobj/xmlnode.{cpp,h}: fix removeNode
to not delete all childrens.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2895&r2=1.2896
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.cpp?cvsroot=gnash&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.h?cvsroot=gnash&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/XML.as?cvsroot=gnash&r1=1.27&r2=1.28
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2895
retrieving revision 1.2896
diff -u -b -r1.2895 -r1.2896
--- ChangeLog 17 Apr 2007 10:38:16 -0000 1.2895
+++ ChangeLog 17 Apr 2007 12:58:20 -0000 1.2896
@@ -1,5 +1,13 @@
2007-04-17 Sandro Santilli <address@hidden>
+ * testsuite/actionscript.all/XML.as: add test
+ showing that removeNode doesn't recurse to
+ childrens.
+ * server/asobj/xmlnode.{cpp,h}: fix removeNode
+ to not delete all childrens.
+
+2007-04-17 Sandro Santilli <address@hidden>
+
* libbase/: tu_file.{cpp,h}, curl_adapter.cpp, zlib_adapter.cpp,
noseek_fd_adapter.cpp:
Add another callback for getting stream error. First pass at
Index: server/asobj/xmlnode.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- server/asobj/xmlnode.cpp 16 Apr 2007 18:23:06 -0000 1.31
+++ server/asobj/xmlnode.cpp 17 Apr 2007 12:58:20 -0000 1.32
@@ -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.31 2007/04/16 18:23:06 strk Exp $ */
+/* $Id: xmlnode.cpp,v 1.32 2007/04/17 12:58:20 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -121,7 +121,6 @@
#ifdef DEBUG_MEMORY_ALLOCATION
log_msg("\tDeleting XMLNode data %s at %p", this->_name.c_str(), this);
#endif
-
}
bool
@@ -173,8 +172,8 @@
boost::intrusive_ptr<XMLNode>
XMLNode::cloneNode(bool deep)
{
- GNASH_REPORT_FUNCTION;
- log_msg("%s: deep is %d\n", __PRETTY_FUNCTION__, deep);
+ //GNASH_REPORT_FUNCTION;
+ //log_msg("%s: deep is %d", __PRETTY_FUNCTION__, deep);
boost::intrusive_ptr<XMLNode> newnode = new XMLNode(*this, deep);
@@ -185,8 +184,6 @@
XMLNode::insertBefore(boost::intrusive_ptr<XMLNode> newnode,
boost::intrusive_ptr<XMLNode> pos)
{
// find iterator for positional parameter
- log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
-
ChildList::iterator it = find(_children.begin(), _children.end(), pos);
if ( it == _children.end() )
{
@@ -216,8 +213,6 @@
{
oldparent->_children.remove(this);
}
- _children.clear();
- _attributes.clear();
_parent = NULL;
assert(get_ref_count() > 0);
}
@@ -466,7 +461,7 @@
static as_value
xmlnode_clonenode(const fn_call& fn)
{
- GNASH_REPORT_FUNCTION;
+ //GNASH_REPORT_FUNCTION;
// log_msg("%s: %d args\n", __PRETTY_FUNCTION__, fn.nargs);
boost::intrusive_ptr<XMLNode> ptr = ensureType<XMLNode>(fn.this_ptr);
@@ -480,7 +475,7 @@
static as_value
xmlnode_insertbefore(const fn_call& fn)
{
- GNASH_REPORT_FUNCTION;
+ //GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<XMLNode> ptr = ensureType<XMLNode>(fn.this_ptr);
if ( fn.nargs < 2 )
@@ -526,7 +521,7 @@
static as_value
xmlnode_removenode(const fn_call& fn)
{
- GNASH_REPORT_FUNCTION;
+ //GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<XMLNode> ptr = ensureType<XMLNode>(fn.this_ptr);
ptr->removeNode();
Index: server/asobj/xmlnode.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/asobj/xmlnode.h 10 Apr 2007 10:46:19 -0000 1.12
+++ server/asobj/xmlnode.h 17 Apr 2007 12:58:20 -0000 1.13
@@ -225,7 +225,7 @@
void toString(std::ostream& str) const;
- void change_stack_frame(int frame, gnash::as_object *xml,
gnash::as_environment *env);
+ //void change_stack_frame(int frame, gnash::as_object *xml,
gnash::as_environment *env);
// We might turn this back to a dumb pointer, as long
// as we'll make sure in the XMLNode destructor and
Index: testsuite/actionscript.all/XML.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/XML.as,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- testsuite/actionscript.all/XML.as 10 Apr 2007 10:46:19 -0000 1.27
+++ testsuite/actionscript.all/XML.as 17 Apr 2007 12:58:20 -0000 1.28
@@ -20,7 +20,7 @@
// compile this test case with Ming makeswf, and then
// execute it like this gnash -1 -r 0 -v out.swf
-rcsid="$Id: XML.as,v 1.27 2007/04/10 10:46:19 strk Exp $";
+rcsid="$Id: XML.as,v 1.28 2007/04/17 12:58:20 strk Exp $";
#include "dejagnu.as"
#include "utils.as"
@@ -487,6 +487,18 @@
check_equals(deepcln_node.parentNode, null);
+xml1 = new XML("<X1T><X1C1><X1C1C1></X1C1C1></X1C1><X1C2></X1C2></X1T>");
+check_equals(xml1.firstChild.childNodes.length, 2);
+fc = xml1.firstChild.firstChild;
+check_equals(fc.nodeName, 'X1C1');
+check_equals(fc.childNodes.length, 1);
+check_equals(fc.parentNode, xml1.firstChild);
+fc.removeNode(); // removes xml1.firstChild.firstChil (X1C1)
+check_equals(xml1.firstChild.childNodes.length, 1);
+check_equals(fc.parentNode, null);
+check_equals(fc.nodeName, 'X1C1');
+check_equals(fc.childNodes.length, 1); // childs of the removed child are
still alive !
+check_equals(fc.childNodes[0].parentNode, fc); // and still point to the
removed child !
//------------------------------------------------
// Other tests..