[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_object.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_object.cpp |
Date: |
Tue, 23 Jan 2007 12:12:29 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/01/23 12:12:29
Modified files:
. : ChangeLog
server : as_object.cpp
Log message:
* server/as_object.cpp (instanceOf): fixed clearly bogus
implementation.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2153&r2=1.2154
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.27&r2=1.28
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2153
retrieving revision 1.2154
diff -u -b -r1.2153 -r1.2154
--- ChangeLog 23 Jan 2007 12:00:08 -0000 1.2153
+++ ChangeLog 23 Jan 2007 12:12:29 -0000 1.2154
@@ -2,7 +2,8 @@
* server/as_object.cpp (copyProperties): use set_member
while importing properties to properly scan the
- inheritance chain.
+ inheritance chain; (instanceOf): fixed clearly bogus
+ implementation.
* server/PropertyList.h: add visitValues() templated function.
* server/sprite_instance.cpp (sprite_attach_movie):
Copy properties from initialization object *after*
Index: server/as_object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- server/as_object.cpp 23 Jan 2007 12:00:09 -0000 1.27
+++ server/as_object.cpp 23 Jan 2007 12:12:29 -0000 1.28
@@ -299,17 +299,11 @@
bool
as_object::instanceOf(as_function* ctor)
{
- const as_object* obj = this;
-
- std::set<const as_object*> visited;
-
- while (obj && visited.insert(obj).second )
- {
- if ( obj->get_prototype() == ctor->getPrototype() ) return true;
- obj = obj->get_prototype();
- }
-
- if ( obj ) log_warning("Circular inheritance chain detected during
instanceOf call");
+ as_object* proto=m_prototype.get();
+ do {
+ if ( proto == ctor->getPrototype() ) return true;
+ proto = ctor->getPrototype();
+ } while (proto);
return false;
}