Benjamin Otte
2007-Nov-14 17:02 UTC
[Swfdec] 4 commits - libswfdec/swfdec_as_interpret.c test/trace
libswfdec/swfdec_as_interpret.c | 3 test/trace/Makefile.am | 18 ++++ test/trace/callmethod-this-5.swf |binary test/trace/callmethod-this-5.swf.trace | 136 +++++++++++++++++++++++++++++++++ test/trace/callmethod-this-6.swf |binary test/trace/callmethod-this-6.swf.trace | 134 ++++++++++++++++++++++++++++++++ test/trace/callmethod-this-7.swf |binary test/trace/callmethod-this-7.swf.trace | 134 ++++++++++++++++++++++++++++++++ test/trace/callmethod-this-8.swf |binary test/trace/callmethod-this-8.swf.trace | 134 ++++++++++++++++++++++++++++++++ test/trace/callmethod-this.as | 26 ++++++ test/trace/super-existance-5.swf |binary test/trace/super-existance-5.swf.trace | 19 ++++ test/trace/super-existance-6.swf |binary test/trace/super-existance-6.swf.trace | 47 +++++++++++ test/trace/super-existance-7.swf |binary test/trace/super-existance-7.swf.trace | 47 +++++++++++ test/trace/super-existance-8.swf |binary test/trace/super-existance-8.swf.trace | 47 +++++++++++ test/trace/super-existance.as | 63 +++++++++++++++ 20 files changed, 808 insertions(+) New commits: commit 58ffc9e42093a14fec09430f5d309745389ca634 Author: Benjamin Otte <otte at gnome.org> Date: Wed Nov 14 17:49:55 2007 +0100 add a test checking the existance of a super object This test was responsible for redoing the super object handling. :) diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 94e03bb..11ea231 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -2045,6 +2045,15 @@ EXTRA_DIST = \ super-equals-this-7.swf.trace \ super-equals-this-8.swf \ super-equals-this-8.swf.trace \ + super-existance.as \ + super-existance-5.swf \ + super-existance-5.swf.trace \ + super-existance-6.swf \ + super-existance-6.swf.trace \ + super-existance-7.swf \ + super-existance-7.swf.trace \ + super-existance-8.swf \ + super-existance-8.swf.trace \ super-missing.as \ super-missing-5.swf \ super-missing-5.swf.trace \ diff --git a/test/trace/super-existance-5.swf b/test/trace/super-existance-5.swf new file mode 100644 index 0000000..50eae55 Binary files /dev/null and b/test/trace/super-existance-5.swf differ diff --git a/test/trace/super-existance-5.swf.trace b/test/trace/super-existance-5.swf.trace new file mode 100644 index 0000000..57f41ab --- /dev/null +++ b/test/trace/super-existance-5.swf.trace @@ -0,0 +1,19 @@ +undefined +>>> CallFunction bar () +bar +undefined +calling last function's super object: +>>> CallMethod bar () +calling last function's super object: +>>> this.bar () +bar +undefined +calling last function's super object: +>>> new bar () +bar +undefined +calling last function's super object: +>>> new this.bar () +bar +undefined +calling last function's super object: diff --git a/test/trace/super-existance-6.swf b/test/trace/super-existance-6.swf new file mode 100644 index 0000000..6ceeb52 Binary files /dev/null and b/test/trace/super-existance-6.swf differ diff --git a/test/trace/super-existance-6.swf.trace b/test/trace/super-existance-6.swf.trace new file mode 100644 index 0000000..921bf5e --- /dev/null +++ b/test/trace/super-existance-6.swf.trace @@ -0,0 +1,47 @@ +undefined +>>> CallFunction bar () +bar +undefined +calling last function's super object: +>>> CallMethod bar () +calling last function's super object: +>>> this.bar () +bar +[object Object] +calling last function's super object: _level0 +>>> new bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz +>>> new this.bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz diff --git a/test/trace/super-existance-7.swf b/test/trace/super-existance-7.swf new file mode 100644 index 0000000..e907c3f Binary files /dev/null and b/test/trace/super-existance-7.swf differ diff --git a/test/trace/super-existance-7.swf.trace b/test/trace/super-existance-7.swf.trace new file mode 100644 index 0000000..17dc3dd --- /dev/null +++ b/test/trace/super-existance-7.swf.trace @@ -0,0 +1,47 @@ +undefined +>>> CallFunction bar () +bar +undefined +calling last function's super object: undefined +>>> CallMethod bar () +calling last function's super object: undefined +>>> this.bar () +bar +[object Object] +calling last function's super object: _level0 +>>> new bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz +>>> new this.bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz diff --git a/test/trace/super-existance-8.swf b/test/trace/super-existance-8.swf new file mode 100644 index 0000000..b46bb16 Binary files /dev/null and b/test/trace/super-existance-8.swf differ diff --git a/test/trace/super-existance-8.swf.trace b/test/trace/super-existance-8.swf.trace new file mode 100644 index 0000000..17dc3dd --- /dev/null +++ b/test/trace/super-existance-8.swf.trace @@ -0,0 +1,47 @@ +undefined +>>> CallFunction bar () +bar +undefined +calling last function's super object: undefined +>>> CallMethod bar () +calling last function's super object: undefined +>>> this.bar () +bar +[object Object] +calling last function's super object: _level0 +>>> new bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz +>>> new this.bar () +bar +[object Object] +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +foo +[object Object] +[type Function] +fuz +calling last function's super object: [object Object] +foo +[object Object] +[type Function] +fuz diff --git a/test/trace/super-existance.as b/test/trace/super-existance.as new file mode 100644 index 0000000..3ef47c8 --- /dev/null +++ b/test/trace/super-existance.as @@ -0,0 +1,63 @@ +// makeswf -v 7 -s 200x150 -r 1 -o movie23.swf movie23.as + +trace (super); +fuz = function () { + trace ("fuz"); +}; +foo = function () extends fuz { + trace ("foo"); + trace (super); + trace (super.toString); + super (); +}; +bar = function () extends foo { + trace ("bar"); + trace (super); + if (huh) { + asm { + push 0, "huh" + getvariable + push undefined + callmethod + }; + } + huh = super; + asm { + push 0, "super" + callfunction + pop + push 0, "super" + getvariable + push undefined + callmethod + pop + }; +}; +function call_huh () { + trace ("calling last function's super object: " + huh); + huh (); +}; + +trace (">>> CallFunction bar ()"); +bar (); +call_huh (); +trace (">>> CallMethod bar ()"); +asm { + push 0, "super" + getvariable + push undefined + callmethod + pop +}; +call_huh (); +trace (">>> this.bar ()"); +this.bar (); +call_huh (); +trace (">>> new bar ()"); +x = new bar (); +call_huh (); +trace (">>> new this.bar ()"); +x = new this.bar (); +call_huh (); + +loadMovie ("fscommand:quit", ""); commit a33dd105506e04f554e1188d93e2de3c19c53327 Author: Benjamin Otte <otte at gnome.org> Date: Wed Nov 14 17:47:19 2007 +0100 add a test for CallMethod and which objects are allowe as this object diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 4650b7b..94e03bb 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -228,6 +228,15 @@ EXTRA_DIST = \ callfunction-stack.as \ callfunction-stack.swf \ callfunction-stack.swf.trace \ + callmethod-this.as \ + callmethod-this-5.swf \ + callmethod-this-5.swf.trace \ + callmethod-this-6.swf \ + callmethod-this-6.swf.trace \ + callmethod-this-7.swf \ + callmethod-this-7.swf.trace \ + callmethod-this-8.swf \ + callmethod-this-8.swf.trace \ callmethod-undefined-this-5.swf \ callmethod-undefined-this-5.swf.trace \ callmethod-undefined-this-6.swf \ diff --git a/test/trace/callmethod-this-5.swf b/test/trace/callmethod-this-5.swf new file mode 100644 index 0000000..4766808 Binary files /dev/null and b/test/trace/callmethod-this-5.swf differ diff --git a/test/trace/callmethod-this-5.swf.trace b/test/trace/callmethod-this-5.swf.trace new file mode 100644 index 0000000..d930251 --- /dev/null +++ b/test/trace/callmethod-this-5.swf.trace @@ -0,0 +1,136 @@ +Check which objects work as this property for a CallMethod action +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +22: valueOf! +22: toString! +23: valueOf! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +27: valueOf! +27: toString! +Calling with (0) (undefined) +undefined +undefined +undefined +Calling with (1) null (null) +Calling with (2) true (boolean) +Calling with (3) false (boolean) +Calling with (4) 0 (number) +Calling with (5) 1 (number) +Calling with (6) 0.5 (number) +Calling with (7) -1 (number) +Calling with (8) -0.5 (number) +Calling with (9) Infinity (number) +Calling with (10) -Infinity (number) +Calling with (11) NaN (number) +Calling with (12) (string) +undefined +undefined +undefined +Calling with (13) 0 (string) +Calling with (14) -0 (string) +Calling with (15) 0.0 (string) +Calling with (16) 1 (string) +Calling with (17) Hello World! (string) +Calling with (18) true (string) +Calling with (19) _level0 (string) +Calling with (20) ???????????? (string) +Calling with (21) _level0 (movieclip) +Calling with (22) [object Object] (object) +Calling with (23) (undefined) +undefined +undefined +undefined +Calling with (24) [type Object] (object) +toString called +Calling with (25) [type Object] (object) +toString called with +Calling with (26) [object Object] (object) +Calling with (27) (object) +Calling with (28) (object) +0: toString! +Calling with (29) null (object) +1: toString! +Calling with (30) true (object) +2: toString! +Calling with (31) false (object) +3: toString! +Calling with (32) 0 (object) +4: toString! +Calling with (33) 1 (object) +5: toString! +Calling with (34) 0.5 (object) +6: toString! +Calling with (35) -1 (object) +7: toString! +Calling with (36) -0.5 (object) +8: toString! +Calling with (37) Infinity (object) +9: toString! +Calling with (38) -Infinity (object) +10: toString! +Calling with (39) NaN (object) +11: toString! +Calling with (40) (object) +12: toString! +undefined +undefined +undefined +Calling with (41) 0 (object) +13: toString! +Calling with (42) -0 (object) +14: toString! +Calling with (43) 0.0 (object) +15: toString! +Calling with (44) 1 (object) +16: toString! +Calling with (45) Hello World! (object) +17: toString! +Calling with (46) true (object) +18: toString! +Calling with (47) _level0 (object) +19: toString! +Calling with (48) ???????????? (object) +20: toString! +Calling with (49) _level0 (object) +21: toString! +Calling with (50) [type Object] (object) +22: toString! +Calling with (51) (object) +23: toString! +Calling with (52) [type Object] (object) +24: toString! +Calling with (53) [type Object] (object) +25: toString! +Calling with (54) [type Object] (object) +26: toString! +Calling with (55) [type Object] (object) +27: toString! diff --git a/test/trace/callmethod-this-6.swf b/test/trace/callmethod-this-6.swf new file mode 100644 index 0000000..b7424a4 Binary files /dev/null and b/test/trace/callmethod-this-6.swf differ diff --git a/test/trace/callmethod-this-6.swf.trace b/test/trace/callmethod-this-6.swf.trace new file mode 100644 index 0000000..c36cb4a --- /dev/null +++ b/test/trace/callmethod-this-6.swf.trace @@ -0,0 +1,134 @@ +Check which objects work as this property for a CallMethod action +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +22: valueOf! +22: toString! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +27: valueOf! +27: toString! +Calling with (0) (undefined) +undefined +[type Function] +undefined +Calling with (1) null (null) +Calling with (2) true (boolean) +Calling with (3) false (boolean) +Calling with (4) 0 (number) +Calling with (5) 1 (number) +Calling with (6) 0.5 (number) +Calling with (7) -1 (number) +Calling with (8) -0.5 (number) +Calling with (9) Infinity (number) +Calling with (10) -Infinity (number) +Calling with (11) NaN (number) +Calling with (12) (string) +undefined +[type Function] +undefined +Calling with (13) 0 (string) +Calling with (14) -0 (string) +Calling with (15) 0.0 (string) +Calling with (16) 1 (string) +Calling with (17) Hello World! (string) +Calling with (18) true (string) +Calling with (19) _level0 (string) +Calling with (20) ?????? (string) +Calling with (21) _level0 (movieclip) +Calling with (22) [object Object] (object) +Calling with (23) [type Function] (function) +Calling with (24) [type Object] (object) +toString called +Calling with (25) [type Object] (object) +toString called with +Calling with (26) [object Object] (object) +Calling with (27) (object) +Calling with (28) (object) +0: toString! +Calling with (29) null (object) +1: toString! +Calling with (30) true (object) +2: toString! +Calling with (31) false (object) +3: toString! +Calling with (32) 0 (object) +4: toString! +Calling with (33) 1 (object) +5: toString! +Calling with (34) 0.5 (object) +6: toString! +Calling with (35) -1 (object) +7: toString! +Calling with (36) -0.5 (object) +8: toString! +Calling with (37) Infinity (object) +9: toString! +Calling with (38) -Infinity (object) +10: toString! +Calling with (39) NaN (object) +11: toString! +Calling with (40) (object) +12: toString! +undefined +[type Function] +undefined +Calling with (41) 0 (object) +13: toString! +Calling with (42) -0 (object) +14: toString! +Calling with (43) 0.0 (object) +15: toString! +Calling with (44) 1 (object) +16: toString! +Calling with (45) Hello World! (object) +17: toString! +Calling with (46) true (object) +18: toString! +Calling with (47) _level0 (object) +19: toString! +Calling with (48) ?????? (object) +20: toString! +Calling with (49) _level0 (object) +21: toString! +Calling with (50) [type Object] (object) +22: toString! +Calling with (51) [type Object] (object) +23: toString! +Calling with (52) [type Object] (object) +24: toString! +Calling with (53) [type Object] (object) +25: toString! +Calling with (54) [type Object] (object) +26: toString! +Calling with (55) [type Object] (object) +27: toString! diff --git a/test/trace/callmethod-this-7.swf b/test/trace/callmethod-this-7.swf new file mode 100644 index 0000000..0a45513 Binary files /dev/null and b/test/trace/callmethod-this-7.swf differ diff --git a/test/trace/callmethod-this-7.swf.trace b/test/trace/callmethod-this-7.swf.trace new file mode 100644 index 0000000..6d9d5a5 --- /dev/null +++ b/test/trace/callmethod-this-7.swf.trace @@ -0,0 +1,134 @@ +Check which objects work as this property for a CallMethod action +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +22: valueOf! +22: toString! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +27: valueOf! +27: toString! +Calling with (0) undefined (undefined) +undefined +[type Function] +undefined +Calling with (1) null (null) +Calling with (2) true (boolean) +Calling with (3) false (boolean) +Calling with (4) 0 (number) +Calling with (5) 1 (number) +Calling with (6) 0.5 (number) +Calling with (7) -1 (number) +Calling with (8) -0.5 (number) +Calling with (9) Infinity (number) +Calling with (10) -Infinity (number) +Calling with (11) NaN (number) +Calling with (12) (string) +undefined +[type Function] +undefined +Calling with (13) 0 (string) +Calling with (14) -0 (string) +Calling with (15) 0.0 (string) +Calling with (16) 1 (string) +Calling with (17) Hello World! (string) +Calling with (18) true (string) +Calling with (19) _level0 (string) +Calling with (20) ?????? (string) +Calling with (21) _level0 (movieclip) +Calling with (22) [object Object] (object) +Calling with (23) [type Function] (function) +Calling with (24) [type Object] (object) +toString called +Calling with (25) [type Object] (object) +toString called with +Calling with (26) [object Object] (object) +Calling with (27) undefined (object) +Calling with (28) undefined (object) +0: toString! +Calling with (29) null (object) +1: toString! +Calling with (30) true (object) +2: toString! +Calling with (31) false (object) +3: toString! +Calling with (32) 0 (object) +4: toString! +Calling with (33) 1 (object) +5: toString! +Calling with (34) 0.5 (object) +6: toString! +Calling with (35) -1 (object) +7: toString! +Calling with (36) -0.5 (object) +8: toString! +Calling with (37) Infinity (object) +9: toString! +Calling with (38) -Infinity (object) +10: toString! +Calling with (39) NaN (object) +11: toString! +Calling with (40) (object) +12: toString! +undefined +[type Function] +undefined +Calling with (41) 0 (object) +13: toString! +Calling with (42) -0 (object) +14: toString! +Calling with (43) 0.0 (object) +15: toString! +Calling with (44) 1 (object) +16: toString! +Calling with (45) Hello World! (object) +17: toString! +Calling with (46) true (object) +18: toString! +Calling with (47) _level0 (object) +19: toString! +Calling with (48) ?????? (object) +20: toString! +Calling with (49) _level0 (object) +21: toString! +Calling with (50) [type Object] (object) +22: toString! +Calling with (51) [type Object] (object) +23: toString! +Calling with (52) [type Object] (object) +24: toString! +Calling with (53) [type Object] (object) +25: toString! +Calling with (54) [type Object] (object) +26: toString! +Calling with (55) [type Object] (object) +27: toString! diff --git a/test/trace/callmethod-this-8.swf b/test/trace/callmethod-this-8.swf new file mode 100644 index 0000000..bbb4226 Binary files /dev/null and b/test/trace/callmethod-this-8.swf differ diff --git a/test/trace/callmethod-this-8.swf.trace b/test/trace/callmethod-this-8.swf.trace new file mode 100644 index 0000000..6d9d5a5 --- /dev/null +++ b/test/trace/callmethod-this-8.swf.trace @@ -0,0 +1,134 @@ +Check which objects work as this property for a CallMethod action +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +22: valueOf! +22: toString! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +27: valueOf! +27: toString! +Calling with (0) undefined (undefined) +undefined +[type Function] +undefined +Calling with (1) null (null) +Calling with (2) true (boolean) +Calling with (3) false (boolean) +Calling with (4) 0 (number) +Calling with (5) 1 (number) +Calling with (6) 0.5 (number) +Calling with (7) -1 (number) +Calling with (8) -0.5 (number) +Calling with (9) Infinity (number) +Calling with (10) -Infinity (number) +Calling with (11) NaN (number) +Calling with (12) (string) +undefined +[type Function] +undefined +Calling with (13) 0 (string) +Calling with (14) -0 (string) +Calling with (15) 0.0 (string) +Calling with (16) 1 (string) +Calling with (17) Hello World! (string) +Calling with (18) true (string) +Calling with (19) _level0 (string) +Calling with (20) ?????? (string) +Calling with (21) _level0 (movieclip) +Calling with (22) [object Object] (object) +Calling with (23) [type Function] (function) +Calling with (24) [type Object] (object) +toString called +Calling with (25) [type Object] (object) +toString called with +Calling with (26) [object Object] (object) +Calling with (27) undefined (object) +Calling with (28) undefined (object) +0: toString! +Calling with (29) null (object) +1: toString! +Calling with (30) true (object) +2: toString! +Calling with (31) false (object) +3: toString! +Calling with (32) 0 (object) +4: toString! +Calling with (33) 1 (object) +5: toString! +Calling with (34) 0.5 (object) +6: toString! +Calling with (35) -1 (object) +7: toString! +Calling with (36) -0.5 (object) +8: toString! +Calling with (37) Infinity (object) +9: toString! +Calling with (38) -Infinity (object) +10: toString! +Calling with (39) NaN (object) +11: toString! +Calling with (40) (object) +12: toString! +undefined +[type Function] +undefined +Calling with (41) 0 (object) +13: toString! +Calling with (42) -0 (object) +14: toString! +Calling with (43) 0.0 (object) +15: toString! +Calling with (44) 1 (object) +16: toString! +Calling with (45) Hello World! (object) +17: toString! +Calling with (46) true (object) +18: toString! +Calling with (47) _level0 (object) +19: toString! +Calling with (48) ?????? (object) +20: toString! +Calling with (49) _level0 (object) +21: toString! +Calling with (50) [type Object] (object) +22: toString! +Calling with (51) [type Object] (object) +23: toString! +Calling with (52) [type Object] (object) +24: toString! +Calling with (53) [type Object] (object) +25: toString! +Calling with (54) [type Object] (object) +26: toString! +Calling with (55) [type Object] (object) +27: toString! diff --git a/test/trace/callmethod-this.as b/test/trace/callmethod-this.as new file mode 100644 index 0000000..3d5f607 --- /dev/null +++ b/test/trace/callmethod-this.as @@ -0,0 +1,26 @@ +// makeswf -v 7 -s 200x150 -r 1 -o callmethod-this.swf callmethod-this.as + +trace ("Check which objects work as this property for a CallMethod action"); + +#include "values.as" + +function bar () { + trace (this); + trace (super); + this.x = 42; + trace (this.x); +}; +for (i = 0; i < values.length; i++) { + trace ("Calling with " + names[i]); + x = values[i]; + asm { + push 0, "bar" + getvariable + push "x" + getvariable + callmethod + pop + }; +}; + +loadMovie ("fscommand:quit", ""); commit 8e20eecf72810430d43b8d37c7da6d6298d76c8a Author: Benjamin Otte <otte at gnome.org> Date: Wed Nov 14 17:45:58 2007 +0100 set pobj == obj here Otherwise we get a wrong treatment of the object is _not_ a super object diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c index fd94d1a..7d6686f 100644 --- a/libswfdec/swfdec_as_interpret.c +++ b/libswfdec/swfdec_as_interpret.c @@ -891,6 +891,7 @@ swfdec_action_call_method (SwfdecAsContext *cx, guint action, const guint8 *data SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_peek (cx, 3)); SWFDEC_AS_VALUE_SET_OBJECT (swfdec_as_stack_peek (cx, 2), obj); name = ""; + pobj = obj; } else { SWFDEC_AS_VALUE_SET_OBJECT (swfdec_as_stack_peek (cx, 3), obj); swfdec_as_object_get_variable_and_flags (obj, name, swfdec_as_stack_peek (cx, 2), NULL, &pobj); commit c40b95d7ad9c6cd75fc7f69b16a414a403aeba46 Author: Benjamin Otte <otte at gnome.org> Date: Wed Nov 14 17:33:19 2007 +0100 seems i removed a swfdec_player_launch() there accidentally diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c index cb44953..fd94d1a 100644 --- a/libswfdec/swfdec_as_interpret.c +++ b/libswfdec/swfdec_as_interpret.c @@ -1147,6 +1147,8 @@ swfdec_action_get_url (SwfdecAsContext *cx, guint action, const guint8 *data, gu } else if (swfdec_player_get_level (SWFDEC_PLAYER (cx), target) >= 0) { swfdec_resource_load (SWFDEC_PLAYER (cx), target, url, SWFDEC_LOADER_REQUEST_DEFAULT, NULL, NULL); + } else { + swfdec_player_launch (SWFDEC_PLAYER (cx), SWFDEC_LOADER_REQUEST_DEFAULT, url, target, NULL); } g_free (url); g_free (target);
Possibly Parallel Threads
- Branch 'as' - 25 commits - libswfdec/Makefile.am libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_boolean.h libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c
- 4 commits - libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c test/trace
- 8 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_sound.c libswfdec/swfdec_sound.h test/trace
- 13 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_xml.c libswfdec/swfdec_xml_node.c test/trace
- Branch 'as' - 6 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_morph_movie.c libswfdec/swfdec_movie_asprops.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_player.c libswfdec/swfdec_sprite.c