CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/08/02 21:14:35
Modified files: . : ChangeLog server : array.cpp as_function.cpp Log message: * server/array.cpp: register static constructor and prototype, since arrays are used by the core independentely of their availability as global classes (function arguments are arrays). * server/as_function.cpp: register static constructor and prototype, since functions are used by the core independently of their availability as global classes (each function uses the Function prototype). CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3922&r2=1.3923 http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.68&r2=1.69 http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_function.cpp?cvsroot=gnash&r1=1.35&r2=1.36 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.3922 retrieving revision 1.3923 diff -u -b -r1.3922 -r1.3923 --- ChangeLog 2 Aug 2007 21:08:01 -0000 1.3922 +++ ChangeLog 2 Aug 2007 21:14:35 -0000 1.3923 @@ -1,5 +1,15 @@ 2007-08-02 Sandro Santilli <[EMAIL PROTECTED]> + * server/array.cpp: register static constructor and prototype, + since arrays are used by the core independentely of their + availability as global classes (function arguments are arrays). + * server/as_function.cpp: register static constructor and prototype, + since functions are used by the core independently of their + availability as global classes (each function uses the Function + prototype). + +2007-08-02 Sandro Santilli <[EMAIL PROTECTED]> + * testsuite/actionscript.all/ops.as: more tests for 'string' == NaN. * server/as_value.cpp (equals): yet another pass at abstract equality operator. We're still not there, but Index: server/array.cpp =================================================================== RCS file: /sources/gnash/gnash/server/array.cpp,v retrieving revision 1.68 retrieving revision 1.69 diff -u -b -r1.68 -r1.69 --- server/array.cpp 31 Jul 2007 02:39:05 -0000 1.68 +++ server/array.cpp 2 Aug 2007 21:14:35 -0000 1.69 @@ -1335,6 +1335,8 @@ if ( proto == NULL ) { proto = new as_object(); + VM::get().addStatic(proto.get()); + attachArrayInterface(*proto); } return proto.get(); @@ -1354,6 +1356,7 @@ if ( ar == NULL ) { ar = new builtin_function(&array_new, getArrayInterface()); + VM::get().addStatic(ar.get()); // We replicate interface to the Array class itself attachArrayInterface(*ar); Index: server/as_function.cpp =================================================================== RCS file: /sources/gnash/gnash/server/as_function.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -u -b -r1.35 -r1.36 --- server/as_function.cpp 1 Jul 2007 10:54:20 -0000 1.35 +++ server/as_function.cpp 2 Aug 2007 21:14:35 -0000 1.36 @@ -71,8 +71,10 @@ static boost::intrusive_ptr<as_object> proto; if ( proto.get() == NULL ) { + // Initialize Function prototype proto = new as_object(); + VM::get().addStatic(proto.get()); if ( VM::get().getSWFVersion() >= 6 ) { @@ -154,10 +156,15 @@ boost::intrusive_ptr<builtin_function> as_function::getFunctionConstructor() { - static boost::intrusive_ptr<builtin_function> func=new builtin_function( + static boost::intrusive_ptr<builtin_function> func = NULL; + if ( ! func ) + { + func = new builtin_function( function_ctor, // function constructor doesn't do anything getFunctionPrototype() // exported interface ); + VM::get().addStatic(func.get()); + } return func; } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit