CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/10/29 10:53:12
Modified files: . : ChangeLog server : as_object.cpp as_object.h Log message: * server/as_object.{cpp,h} (findUpdatableProperty): return static properties in inheritance chain if found, as correctly documented in the header file. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4732&r2=1.4733 http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.76&r2=1.77 http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.79&r2=1.80 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4732 retrieving revision 1.4733 diff -u -b -r1.4732 -r1.4733 --- ChangeLog 28 Oct 2007 22:01:30 -0000 1.4732 +++ ChangeLog 29 Oct 2007 10:53:12 -0000 1.4733 @@ -1,3 +1,10 @@ +2007-10-27 Sandro Santilli <[EMAIL PROTECTED]> + + * server/as_object.{cpp,h} (findUpdatableProperty): return + static properties in inheritance chain if found, as correctly + documented in the header file (need an ABC compiler for real + testing). + 2007-10-27 Bastiaan Jacques <[EMAIL PROTECTED]> * various Makefile.am: Remove libgnashbackend, since it is Index: server/as_object.cpp =================================================================== RCS file: /sources/gnash/gnash/server/as_object.cpp,v retrieving revision 1.76 retrieving revision 1.77 diff -u -b -r1.76 -r1.77 --- server/as_object.cpp 27 Oct 2007 16:43:44 -0000 1.76 +++ server/as_object.cpp 29 Oct 2007 10:53:12 -0000 1.77 @@ -233,7 +233,7 @@ while ( obj && visited.insert(obj.get()).second ) { Property* prop = obj->_members.getProperty(key, nsname); - if ( prop && prop->isGetterSetter() && prop->isVisible(swfVersion) ) + if ( prop && ( prop->isGetterSetter() || prop->isStatic() ) && prop->isVisible(swfVersion) ) { // what if a property is found which is // NOT a getter/setter ? @@ -242,7 +242,7 @@ obj = obj->get_prototype(); } - // No Getter/Setter property found in inheritance chain + // No Getter/Setter or Static property found in inheritance chain return NULL; } @@ -284,8 +284,6 @@ return; } - // TODO: add isStatic() check in findUpdatableProperty ? - //if (prop->isGetterSetter() || prop->isStatic()) { try { prop->setValue(*this, val); @@ -297,7 +295,6 @@ log_msg(_("%s: Exception %s. Will create a new member"), _vm.getStringTable().value(key).c_str(), exc.what()); } - //} return; } Index: server/as_object.h =================================================================== RCS file: /sources/gnash/gnash/server/as_object.h,v retrieving revision 1.79 retrieving revision 1.80 diff -u -b -r1.79 -r1.80 --- server/as_object.h 26 Oct 2007 22:56:07 -0000 1.79 +++ server/as_object.h 29 Oct 2007 10:53:12 -0000 1.80 @@ -90,8 +90,9 @@ return *this; } - /// Find an existing property for update, only scaning the inheritance chain for getter/setters - /// or statics. + /// \brief + /// Find an existing property for update, only scaning the inheritance chain for + /// getter/setters or statics. // /// NOTE: updatable here doesn't mean the property isn't protected from update /// but only that a set_member will NOT create a new property (either _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit