[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-261-g7274343 |
Date: |
Thu, 14 Apr 2011 06:53:34 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".
The branch, master has been updated
via 72743434f9a593c7c0295b4c52ed624db2a8052a (commit)
via 7d2d74e14031ca26dff087b5409e7fc262991cd8 (commit)
from bf6a9da94b9e25741625747bda84229f6e3fcaa1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=72743434f9a593c7c0295b4c52ed624db2a8052a
commit 72743434f9a593c7c0295b4c52ed624db2a8052a
Author: Benjamin Wolsey <address@hidden>
Date: Thu Apr 14 08:38:34 2011 +0200
Fix object-resolve for version 6 as well.
diff --git a/libcore/as_object.cpp b/libcore/as_object.cpp
index 4d652d4..92b114c 100644
--- a/libcore/as_object.cpp
+++ b/libcore/as_object.cpp
@@ -410,7 +410,7 @@ as_object::get_member(const ObjectURI& uri, as_value* val)
if (res) {
resolve = res->isGetterSetter() ? res->getCache() :
res->getValue(*this);
- if (version < 6) break;
+ if (version < 7) break;
if (resolve.is_object()) break;
}
// Finished searching.
@@ -426,8 +426,7 @@ as_object::get_member(const ObjectURI& uri, as_value* val)
args += undefinedName;
// Invoke the __resolve property.
- *val = invoke(resolve, as_environment(getVM(*this)),
- this, args);
+ *val = invoke(resolve, as_environment(getVM(*this)), this, args);
return true;
}
diff --git a/testsuite/swfdec/PASSING b/testsuite/swfdec/PASSING
index 04e811a..fe8fe64 100644
--- a/testsuite/swfdec/PASSING
+++ b/testsuite/swfdec/PASSING
@@ -905,6 +905,7 @@ object-properties-6.swf:c34734222b0c6eef649ab3b92b1b830f
object-properties-7.swf:71ebb1f47408d993409748dae8d32d5e
object-properties-8.swf:992fafbfd6ae4927116892eb205aac0f
object-resolve-5.swf:5ec01818d35026f5ec889416fbbf8320
+object-resolve-6.swf:d17bdb694f5c9df3fefdf611f137e704
object-resolve-7.swf:c7646ca7ed10a6ea8d81f2f724a17457
object-resolve-8.swf:4a26d8425effd110ee82ddc61903d91d
object-resolve-propflags-5.swf:e62bfe8b6c63f9e88ef4f00ff71e000e
http://git.savannah.gnu.org/cgit//commit/?id=7d2d74e14031ca26dff087b5409e7fc262991cd8
commit 7d2d74e14031ca26dff087b5409e7fc262991cd8
Author: Benjamin Wolsey <address@hidden>
Date: Thu Apr 14 08:28:32 2011 +0200
Handle getter-setter and object __resolve.
Fixes swfdec tests for SWF7 and 8.
diff --git a/libcore/as_object.cpp b/libcore/as_object.cpp
index 25f227e..4d652d4 100644
--- a/libcore/as_object.cpp
+++ b/libcore/as_object.cpp
@@ -402,14 +402,20 @@ as_object::get_member(const ObjectURI& uri, as_value* val)
if (!prop) {
PrototypeRecursor<Exists> pr(this, NSV::PROP_uuRESOLVE);
- Property* res = pr.getProperty();
- while (!res && pr()) {
- res = pr.getProperty();
+ as_value resolve;
+
+ for (;;) {
+ Property* res = pr.getProperty();
+ if (res) {
+ resolve = res->isGetterSetter() ? res->getCache() :
+ res->getValue(*this);
+ if (version < 6) break;
+ if (resolve.is_object()) break;
+ }
+ // Finished searching.
+ if (!pr()) return false;
}
-
- // No __resolve
- if (!res) return false;
// If __resolve exists, call it with the name of the undefined
// property.
@@ -420,7 +426,7 @@ as_object::get_member(const ObjectURI& uri, as_value* val)
args += undefinedName;
// Invoke the __resolve property.
- *val = invoke(res->getValue(*this), as_environment(getVM(*this)),
+ *val = invoke(resolve, as_environment(getVM(*this)),
this, args);
return true;
diff --git a/testsuite/swfdec/PASSING b/testsuite/swfdec/PASSING
index e08457a..04e811a 100644
--- a/testsuite/swfdec/PASSING
+++ b/testsuite/swfdec/PASSING
@@ -905,6 +905,8 @@ object-properties-6.swf:c34734222b0c6eef649ab3b92b1b830f
object-properties-7.swf:71ebb1f47408d993409748dae8d32d5e
object-properties-8.swf:992fafbfd6ae4927116892eb205aac0f
object-resolve-5.swf:5ec01818d35026f5ec889416fbbf8320
+object-resolve-7.swf:c7646ca7ed10a6ea8d81f2f724a17457
+object-resolve-8.swf:4a26d8425effd110ee82ddc61903d91d
object-resolve-propflags-5.swf:e62bfe8b6c63f9e88ef4f00ff71e000e
object-resolve-propflags-6.swf:d66b51e3f2364a2ba81ed709b243cca8
object-resolve-propflags-7.swf:79349b6a00865b1fdaadf0e474eddbfa
-----------------------------------------------------------------------
Summary of changes:
libcore/as_object.cpp | 21 +++++++++++++--------
testsuite/swfdec/PASSING | 3 +++
2 files changed, 16 insertions(+), 8 deletions(-)
hooks/post-receive
--
Gnash
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-261-g7274343,
Benjamin Wolsey <=