Benjamin Otte
2007-Nov-08 21:30 UTC
[Swfdec] 8 commits - libswfdec-gtk/swfdec_gtk_player.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_date.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_player.c test/trace
libswfdec-gtk/swfdec_gtk_player.c | 3 libswfdec/swfdec_as_context.c | 10 - libswfdec/swfdec_as_date.c | 4 libswfdec/swfdec_as_frame.c | 4 libswfdec/swfdec_player.c | 18 + test/trace/Makefile.am | 18 + test/trace/moviecliploader-constructor-5.swf |binary test/trace/moviecliploader-constructor-5.swf.trace | 3 test/trace/moviecliploader-constructor-6.swf |binary test/trace/moviecliploader-constructor-6.swf.trace | 3 test/trace/moviecliploader-constructor-7.swf |binary test/trace/moviecliploader-constructor-7.swf.trace | 3 test/trace/moviecliploader-constructor-8.swf |binary test/trace/moviecliploader-constructor-8.swf.trace | 3 test/trace/moviecliploader-constructor.as | 9 test/trace/unreproducable-random-5.swf |binary test/trace/unreproducable-random-5.swf.trace | 203 +++++++++++++++++++++ test/trace/unreproducable-random-6.swf |binary test/trace/unreproducable-random-6.swf.trace | 203 +++++++++++++++++++++ test/trace/unreproducable-random-7.swf |binary test/trace/unreproducable-random-7.swf.trace | 203 +++++++++++++++++++++ test/trace/unreproducable-random-8.swf |binary test/trace/unreproducable-random-8.swf.trace | 203 +++++++++++++++++++++ test/trace/unreproducable-random.as | 17 + 24 files changed, 895 insertions(+), 12 deletions(-) New commits: commit 4305ef53af80ae0d864d3d2eca5a851dd405df25 Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 22:30:25 2007 +0100 add internal consistency test for random() and new Date() diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index aaaca1a..57c8e79 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -2187,6 +2187,15 @@ EXTRA_DIST = \ unescape2-6.swf.trace \ unescape2-7.swf \ unescape2-7.swf.trace \ + unreproducable-random.as \ + unreproducable-random-5.swf \ + unreproducable-random-5.swf.trace \ + unreproducable-random-6.swf \ + unreproducable-random-6.swf.trace \ + unreproducable-random-7.swf \ + unreproducable-random-7.swf.trace \ + unreproducable-random-8.swf \ + unreproducable-random-8.swf.trace \ values.as \ video.flv \ video-properties.as \ diff --git a/test/trace/unreproducable-random-5.swf b/test/trace/unreproducable-random-5.swf new file mode 100644 index 0000000..579a1f0 Binary files /dev/null and b/test/trace/unreproducable-random-5.swf differ diff --git a/test/trace/unreproducable-random-5.swf.trace b/test/trace/unreproducable-random-5.swf.trace new file mode 100644 index 0000000..078f399 --- /dev/null +++ b/test/trace/unreproducable-random-5.swf.trace @@ -0,0 +1,203 @@ +This is an internal Swfdec test to ensure tests are internally predictable. +You cannot reproduce this test with any other Flash player. +44 +0.715189365109625 +60 +0.85794561998983 +27 +0.423654796985735 +83 +0.384381708373757 +56 +0.891773001825794 +76 +0.272656294741589 +94 +0.791725033539735 +19 +0.479977171525568 +24 +0.925596633318994 +69 +0.337396161647289 +81 +0.020218399271409 +60 +0.957155154513339 +22 +0.870012145289302 +88 +0.47360804024586 +96 +0.461479362985331 +57 +0.67887953384326 +82 +0.639921017158924 +69 +0.537373228264822 +11 +0.521848328355377 +6 +0.473600422827215 +99 +0.774233686548269 +74 +0.216550356814673 +18 +0.0187897980527995 +12 +0.149674863931172 +10 +0.616933998703566 +21 +0.902598471600504 +81 +0.359507902164466 +19 +0.902348578310812 +69 +0.0602254665222206 +33 +0.653140032353524 +35 +0.210382561704821 +58 +0.75068613889835 +46 +0.363710773551797 +12 +0.0384254256659646 +56 +0.988373831993498 +50 +0.652790318965457 +47 +0.16130951131579 +84 +0.581850332360041 +44 +0.466310772908472 +60 +0.623510106057959 +75 +0.110375139242506 +57 +0.317201744917857 +49 +0.196582356881896 +11 +0.662526868136769 +77 +0.0971012711556562 +1 +0.673659631246222 +90 +0.976459465448732 +27 +0.509624371879886 +41 +0.604845518026434 +69 +0.0199876725066601 +72 +0.282806959571715 +71 +0.359444469008641 +71 +0.118727714400947 +73 +0.880475893225051 +87 +0.0641475012335543 +71 +0.565188865804223 +91 +0.265389491306875 +42 +0.916722956701007 +1 +0.575946495384247 +12 +0.277718564246152 +43 +0.66741037625106 +82 +0.647174138606479 +88 +0.289406091170708 +98 +0.397820751691049 +66 +0.0201075506752407 +84 +0.369808095933157 +42 +0.677816539338427 +18 +0.703737280860079 +74 +0.962188544983155 +64 +0.756106691492897 +15 +0.592041926550702 +78 +0.638921080290399 +8 +0.952749009451725 +45 +0.449197732016241 +40 +0.699479277706372 +3 +0.767023702686987 +21 +0.396505738937254 +47 +0.249796275254596 +92 +0.881735359624312 +86 +0.588465083551717 +20 +0.501324383229871 +13 +0.230533023354617 +33 +0.423855044039634 +32 +0.474867521693556 +69 +0.301574816338283 +3 +0.287991003985557 +48 +0.618015426998833 +45 +0.878452191229157 +94 +0.298282327852879 +22 +0.354046664566259 +93 +0.574325255945282 +78 +0.968961766141746 +37 +0.431418434558668 +86 +0.141263903094583 +18 +0.43586491935357 +19 +0.260340928773378 +29 +0.703888585683196 +67 +0.0995690848446048 +52 +0.714241298463268 +46 +0.841140130068838 +Mon Oct 28 21:24:04 GMT+0000 2002 diff --git a/test/trace/unreproducable-random-6.swf b/test/trace/unreproducable-random-6.swf new file mode 100644 index 0000000..0a686e4 Binary files /dev/null and b/test/trace/unreproducable-random-6.swf differ diff --git a/test/trace/unreproducable-random-6.swf.trace b/test/trace/unreproducable-random-6.swf.trace new file mode 100644 index 0000000..078f399 --- /dev/null +++ b/test/trace/unreproducable-random-6.swf.trace @@ -0,0 +1,203 @@ +This is an internal Swfdec test to ensure tests are internally predictable. +You cannot reproduce this test with any other Flash player. +44 +0.715189365109625 +60 +0.85794561998983 +27 +0.423654796985735 +83 +0.384381708373757 +56 +0.891773001825794 +76 +0.272656294741589 +94 +0.791725033539735 +19 +0.479977171525568 +24 +0.925596633318994 +69 +0.337396161647289 +81 +0.020218399271409 +60 +0.957155154513339 +22 +0.870012145289302 +88 +0.47360804024586 +96 +0.461479362985331 +57 +0.67887953384326 +82 +0.639921017158924 +69 +0.537373228264822 +11 +0.521848328355377 +6 +0.473600422827215 +99 +0.774233686548269 +74 +0.216550356814673 +18 +0.0187897980527995 +12 +0.149674863931172 +10 +0.616933998703566 +21 +0.902598471600504 +81 +0.359507902164466 +19 +0.902348578310812 +69 +0.0602254665222206 +33 +0.653140032353524 +35 +0.210382561704821 +58 +0.75068613889835 +46 +0.363710773551797 +12 +0.0384254256659646 +56 +0.988373831993498 +50 +0.652790318965457 +47 +0.16130951131579 +84 +0.581850332360041 +44 +0.466310772908472 +60 +0.623510106057959 +75 +0.110375139242506 +57 +0.317201744917857 +49 +0.196582356881896 +11 +0.662526868136769 +77 +0.0971012711556562 +1 +0.673659631246222 +90 +0.976459465448732 +27 +0.509624371879886 +41 +0.604845518026434 +69 +0.0199876725066601 +72 +0.282806959571715 +71 +0.359444469008641 +71 +0.118727714400947 +73 +0.880475893225051 +87 +0.0641475012335543 +71 +0.565188865804223 +91 +0.265389491306875 +42 +0.916722956701007 +1 +0.575946495384247 +12 +0.277718564246152 +43 +0.66741037625106 +82 +0.647174138606479 +88 +0.289406091170708 +98 +0.397820751691049 +66 +0.0201075506752407 +84 +0.369808095933157 +42 +0.677816539338427 +18 +0.703737280860079 +74 +0.962188544983155 +64 +0.756106691492897 +15 +0.592041926550702 +78 +0.638921080290399 +8 +0.952749009451725 +45 +0.449197732016241 +40 +0.699479277706372 +3 +0.767023702686987 +21 +0.396505738937254 +47 +0.249796275254596 +92 +0.881735359624312 +86 +0.588465083551717 +20 +0.501324383229871 +13 +0.230533023354617 +33 +0.423855044039634 +32 +0.474867521693556 +69 +0.301574816338283 +3 +0.287991003985557 +48 +0.618015426998833 +45 +0.878452191229157 +94 +0.298282327852879 +22 +0.354046664566259 +93 +0.574325255945282 +78 +0.968961766141746 +37 +0.431418434558668 +86 +0.141263903094583 +18 +0.43586491935357 +19 +0.260340928773378 +29 +0.703888585683196 +67 +0.0995690848446048 +52 +0.714241298463268 +46 +0.841140130068838 +Mon Oct 28 21:24:04 GMT+0000 2002 diff --git a/test/trace/unreproducable-random-7.swf b/test/trace/unreproducable-random-7.swf new file mode 100644 index 0000000..f62ceef Binary files /dev/null and b/test/trace/unreproducable-random-7.swf differ diff --git a/test/trace/unreproducable-random-7.swf.trace b/test/trace/unreproducable-random-7.swf.trace new file mode 100644 index 0000000..078f399 --- /dev/null +++ b/test/trace/unreproducable-random-7.swf.trace @@ -0,0 +1,203 @@ +This is an internal Swfdec test to ensure tests are internally predictable. +You cannot reproduce this test with any other Flash player. +44 +0.715189365109625 +60 +0.85794561998983 +27 +0.423654796985735 +83 +0.384381708373757 +56 +0.891773001825794 +76 +0.272656294741589 +94 +0.791725033539735 +19 +0.479977171525568 +24 +0.925596633318994 +69 +0.337396161647289 +81 +0.020218399271409 +60 +0.957155154513339 +22 +0.870012145289302 +88 +0.47360804024586 +96 +0.461479362985331 +57 +0.67887953384326 +82 +0.639921017158924 +69 +0.537373228264822 +11 +0.521848328355377 +6 +0.473600422827215 +99 +0.774233686548269 +74 +0.216550356814673 +18 +0.0187897980527995 +12 +0.149674863931172 +10 +0.616933998703566 +21 +0.902598471600504 +81 +0.359507902164466 +19 +0.902348578310812 +69 +0.0602254665222206 +33 +0.653140032353524 +35 +0.210382561704821 +58 +0.75068613889835 +46 +0.363710773551797 +12 +0.0384254256659646 +56 +0.988373831993498 +50 +0.652790318965457 +47 +0.16130951131579 +84 +0.581850332360041 +44 +0.466310772908472 +60 +0.623510106057959 +75 +0.110375139242506 +57 +0.317201744917857 +49 +0.196582356881896 +11 +0.662526868136769 +77 +0.0971012711556562 +1 +0.673659631246222 +90 +0.976459465448732 +27 +0.509624371879886 +41 +0.604845518026434 +69 +0.0199876725066601 +72 +0.282806959571715 +71 +0.359444469008641 +71 +0.118727714400947 +73 +0.880475893225051 +87 +0.0641475012335543 +71 +0.565188865804223 +91 +0.265389491306875 +42 +0.916722956701007 +1 +0.575946495384247 +12 +0.277718564246152 +43 +0.66741037625106 +82 +0.647174138606479 +88 +0.289406091170708 +98 +0.397820751691049 +66 +0.0201075506752407 +84 +0.369808095933157 +42 +0.677816539338427 +18 +0.703737280860079 +74 +0.962188544983155 +64 +0.756106691492897 +15 +0.592041926550702 +78 +0.638921080290399 +8 +0.952749009451725 +45 +0.449197732016241 +40 +0.699479277706372 +3 +0.767023702686987 +21 +0.396505738937254 +47 +0.249796275254596 +92 +0.881735359624312 +86 +0.588465083551717 +20 +0.501324383229871 +13 +0.230533023354617 +33 +0.423855044039634 +32 +0.474867521693556 +69 +0.301574816338283 +3 +0.287991003985557 +48 +0.618015426998833 +45 +0.878452191229157 +94 +0.298282327852879 +22 +0.354046664566259 +93 +0.574325255945282 +78 +0.968961766141746 +37 +0.431418434558668 +86 +0.141263903094583 +18 +0.43586491935357 +19 +0.260340928773378 +29 +0.703888585683196 +67 +0.0995690848446048 +52 +0.714241298463268 +46 +0.841140130068838 +Mon Oct 28 21:24:04 GMT+0000 2002 diff --git a/test/trace/unreproducable-random-8.swf b/test/trace/unreproducable-random-8.swf new file mode 100644 index 0000000..0657b36 Binary files /dev/null and b/test/trace/unreproducable-random-8.swf differ diff --git a/test/trace/unreproducable-random-8.swf.trace b/test/trace/unreproducable-random-8.swf.trace new file mode 100644 index 0000000..078f399 --- /dev/null +++ b/test/trace/unreproducable-random-8.swf.trace @@ -0,0 +1,203 @@ +This is an internal Swfdec test to ensure tests are internally predictable. +You cannot reproduce this test with any other Flash player. +44 +0.715189365109625 +60 +0.85794561998983 +27 +0.423654796985735 +83 +0.384381708373757 +56 +0.891773001825794 +76 +0.272656294741589 +94 +0.791725033539735 +19 +0.479977171525568 +24 +0.925596633318994 +69 +0.337396161647289 +81 +0.020218399271409 +60 +0.957155154513339 +22 +0.870012145289302 +88 +0.47360804024586 +96 +0.461479362985331 +57 +0.67887953384326 +82 +0.639921017158924 +69 +0.537373228264822 +11 +0.521848328355377 +6 +0.473600422827215 +99 +0.774233686548269 +74 +0.216550356814673 +18 +0.0187897980527995 +12 +0.149674863931172 +10 +0.616933998703566 +21 +0.902598471600504 +81 +0.359507902164466 +19 +0.902348578310812 +69 +0.0602254665222206 +33 +0.653140032353524 +35 +0.210382561704821 +58 +0.75068613889835 +46 +0.363710773551797 +12 +0.0384254256659646 +56 +0.988373831993498 +50 +0.652790318965457 +47 +0.16130951131579 +84 +0.581850332360041 +44 +0.466310772908472 +60 +0.623510106057959 +75 +0.110375139242506 +57 +0.317201744917857 +49 +0.196582356881896 +11 +0.662526868136769 +77 +0.0971012711556562 +1 +0.673659631246222 +90 +0.976459465448732 +27 +0.509624371879886 +41 +0.604845518026434 +69 +0.0199876725066601 +72 +0.282806959571715 +71 +0.359444469008641 +71 +0.118727714400947 +73 +0.880475893225051 +87 +0.0641475012335543 +71 +0.565188865804223 +91 +0.265389491306875 +42 +0.916722956701007 +1 +0.575946495384247 +12 +0.277718564246152 +43 +0.66741037625106 +82 +0.647174138606479 +88 +0.289406091170708 +98 +0.397820751691049 +66 +0.0201075506752407 +84 +0.369808095933157 +42 +0.677816539338427 +18 +0.703737280860079 +74 +0.962188544983155 +64 +0.756106691492897 +15 +0.592041926550702 +78 +0.638921080290399 +8 +0.952749009451725 +45 +0.449197732016241 +40 +0.699479277706372 +3 +0.767023702686987 +21 +0.396505738937254 +47 +0.249796275254596 +92 +0.881735359624312 +86 +0.588465083551717 +20 +0.501324383229871 +13 +0.230533023354617 +33 +0.423855044039634 +32 +0.474867521693556 +69 +0.301574816338283 +3 +0.287991003985557 +48 +0.618015426998833 +45 +0.878452191229157 +94 +0.298282327852879 +22 +0.354046664566259 +93 +0.574325255945282 +78 +0.968961766141746 +37 +0.431418434558668 +86 +0.141263903094583 +18 +0.43586491935357 +19 +0.260340928773378 +29 +0.703888585683196 +67 +0.0995690848446048 +52 +0.714241298463268 +46 +0.841140130068838 +Mon Oct 28 21:24:04 GMT+0000 2002 diff --git a/test/trace/unreproducable-random.as b/test/trace/unreproducable-random.as new file mode 100644 index 0000000..5d81379 --- /dev/null +++ b/test/trace/unreproducable-random.as @@ -0,0 +1,17 @@ +// makeswf -v 7 -s 200x150 -r 1 -o unreproducable-random.swf unreproducable-random.as + +trace ("This is an internal Swfdec test to ensure tests are internally predictable."); +trace ("You cannot reproduce this test with any other Flash player."); + +for (i = 0; i < 100; i++) { + asm { + push 100 + random + trace + }; + trace (Math.random ()); +} + +trace (new Date ()); + +loadMovie ("fscommand:QUIT", ""); commit 21da8d8897eae9d5c3468bab01bec1a569d48d4d Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 22:29:00 2007 +0100 make new Date () predictable diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 019b962..7d68208 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1995,6 +1995,7 @@ swfdec_player_unroot_object (SwfdecPlayer *player, GObject *object) SwfdecPlayer * swfdec_player_new (SwfdecAsDebugger *debugger) { + static const GTimeVal the_beginning = { 1035840244, 0 }; SwfdecPlayer *player; g_return_val_if_fail (debugger == NULL || SWFDEC_IS_AS_DEBUGGER (debugger), NULL); @@ -2003,6 +2004,8 @@ swfdec_player_new (SwfdecAsDebugger *debugger) player = g_object_new (SWFDEC_TYPE_PLAYER, "random-seed", 0, "max-runtime", 0, "debugger", debugger, NULL); + /* FIXME: make this a property or something and don't set it here */ + SWFDEC_AS_CONTEXT (player)->start_time = the_beginning; return player; } commit 7a5ddc67a5e8da3780b72df086f8c27bf5e6db56 Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 22:28:43 2007 +0100 fix new Date () to work correctly diff --git a/libswfdec/swfdec_as_date.c b/libswfdec/swfdec_as_date.c index cb10e26..50b4ad9 100644 --- a/libswfdec/swfdec_as_date.c +++ b/libswfdec/swfdec_as_date.c @@ -1052,8 +1052,8 @@ swfdec_as_date_construct (SwfdecAsContext *cx, SwfdecAsObject *object, GTimeVal tv; swfdec_as_context_get_time (cx, &tv); - swfdec_as_date_set_milliseconds_local (date, - tv.tv_sec * 1000 + tv.tv_usec / 1000); + swfdec_as_date_set_milliseconds_utc (date, + tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0); } else if (argc == 1) // milliseconds from epoch, local { commit b023c1c39919dc09e8125723788217a36c6d1dda Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 20:09:26 2007 +0100 add a test for the MovieClipLoader() function diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index ab9d1c4..aaaca1a 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -982,6 +982,15 @@ EXTRA_DIST = \ movieclip-target-6.swf.trace \ movieclip-target-7.swf \ movieclip-target-7.swf.trace \ + moviecliploader-constructor.as \ + moviecliploader-constructor-5.swf \ + moviecliploader-constructor-5.swf.trace \ + moviecliploader-constructor-6.swf \ + moviecliploader-constructor-6.swf.trace \ + moviecliploader-constructor-7.swf \ + moviecliploader-constructor-7.swf.trace \ + moviecliploader-constructor-8.swf \ + moviecliploader-constructor-8.swf.trace \ moviecliploader-error-illegalrequest.as \ moviecliploader-error-illegalrequest-6.swf \ moviecliploader-error-illegalrequest-6.swf.trace \ diff --git a/test/trace/moviecliploader-constructor-5.swf b/test/trace/moviecliploader-constructor-5.swf new file mode 100644 index 0000000..e830ce3 Binary files /dev/null and b/test/trace/moviecliploader-constructor-5.swf differ diff --git a/test/trace/moviecliploader-constructor-5.swf.trace b/test/trace/moviecliploader-constructor-5.swf.trace new file mode 100644 index 0000000..b122b04 --- /dev/null +++ b/test/trace/moviecliploader-constructor-5.swf.trace @@ -0,0 +1,3 @@ +Call MovieClipLoader on a normal object +undefined +undefined diff --git a/test/trace/moviecliploader-constructor-6.swf b/test/trace/moviecliploader-constructor-6.swf new file mode 100644 index 0000000..28340e8 Binary files /dev/null and b/test/trace/moviecliploader-constructor-6.swf differ diff --git a/test/trace/moviecliploader-constructor-6.swf.trace b/test/trace/moviecliploader-constructor-6.swf.trace new file mode 100644 index 0000000..b122b04 --- /dev/null +++ b/test/trace/moviecliploader-constructor-6.swf.trace @@ -0,0 +1,3 @@ +Call MovieClipLoader on a normal object +undefined +undefined diff --git a/test/trace/moviecliploader-constructor-7.swf b/test/trace/moviecliploader-constructor-7.swf new file mode 100644 index 0000000..0e1b03d Binary files /dev/null and b/test/trace/moviecliploader-constructor-7.swf differ diff --git a/test/trace/moviecliploader-constructor-7.swf.trace b/test/trace/moviecliploader-constructor-7.swf.trace new file mode 100644 index 0000000..b122b04 --- /dev/null +++ b/test/trace/moviecliploader-constructor-7.swf.trace @@ -0,0 +1,3 @@ +Call MovieClipLoader on a normal object +undefined +undefined diff --git a/test/trace/moviecliploader-constructor-8.swf b/test/trace/moviecliploader-constructor-8.swf new file mode 100644 index 0000000..ec19678 Binary files /dev/null and b/test/trace/moviecliploader-constructor-8.swf differ diff --git a/test/trace/moviecliploader-constructor-8.swf.trace b/test/trace/moviecliploader-constructor-8.swf.trace new file mode 100644 index 0000000..b122b04 --- /dev/null +++ b/test/trace/moviecliploader-constructor-8.swf.trace @@ -0,0 +1,3 @@ +Call MovieClipLoader on a normal object +undefined +undefined diff --git a/test/trace/moviecliploader-constructor.as b/test/trace/moviecliploader-constructor.as new file mode 100644 index 0000000..57df74e --- /dev/null +++ b/test/trace/moviecliploader-constructor.as @@ -0,0 +1,9 @@ +// makeswf -v 7 -s 200x150 -r 1 -o moviecliploader-constructor.swf moviecliploader-constructor.as + +trace ("Call MovieClipLoader on a normal object"); + +o = {}; +trace (MovieClipLoader (o)); +trace (o._listeners); + +loadMovie ("fscommand:QUIT", ""); commit 62df0b4c39aa14e0182350814f0f85f3fbf0307f Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 19:40:34 2007 +0100 Make max-runtime default to 10 seconds, but override it in swfdec_player_new() diff --git a/libswfdec-gtk/swfdec_gtk_player.c b/libswfdec-gtk/swfdec_gtk_player.c index 60e7ded..485f708 100644 --- a/libswfdec-gtk/swfdec_gtk_player.c +++ b/libswfdec-gtk/swfdec_gtk_player.c @@ -173,8 +173,7 @@ swfdec_gtk_player_new (SwfdecAsDebugger *debugger) SwfdecPlayer *player; swfdec_init (); - player = g_object_new (SWFDEC_TYPE_GTK_PLAYER, "debugger", debugger, - "max-runtime", (gulong) 10 * 1000, NULL); + player = g_object_new (SWFDEC_TYPE_GTK_PLAYER, "debugger", debugger, NULL); return player; } diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 7d665b5..019b962 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1485,7 +1485,7 @@ swfdec_player_class_init (SwfdecPlayerClass *klass) SWFDEC_TYPE_SYSTEM, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MAX_RUNTIME, g_param_spec_ulong ("max-runtime", "maximum runtime", "maximum time in msecs scripts may run in the player before aborting", - 0, G_MAXULONG, 0, G_PARAM_READWRITE)); + 0, G_MAXULONG, 10 * 1000, G_PARAM_READWRITE)); /** * SwfdecPlayer::invalidate: @@ -1652,6 +1652,7 @@ swfdec_player_init (SwfdecPlayer *player) player->runtime = g_timer_new (); g_timer_stop (player->runtime); + player->max_runtime = 10 * 1000; player->invalidations = g_array_new (FALSE, FALSE, sizeof (SwfdecRectangle)); player->mouse_visible = TRUE; player->mouse_cursor = SWFDEC_MOUSE_CURSOR_NORMAL; @@ -2000,6 +2001,7 @@ swfdec_player_new (SwfdecAsDebugger *debugger) swfdec_init (); player = g_object_new (SWFDEC_TYPE_PLAYER, "random-seed", 0, + "max-runtime", 0, "debugger", debugger, NULL); return player; commit ff66817638e142937eb49269c326d6347870a3b5 Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 19:40:15 2007 +0100 make description not cause a gtk-doc warning. The detection code should be better... diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index f4d13f0..e850d96 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -217,8 +217,8 @@ typedef struct { * * Registers a function that guards a block of memory. When the function * exits this block of memory, it will call this function. This can happen - * either when the program counter leaves the guarded region, when the function - * returns or when the context aborted due to an unrecoverable error. + * either when the program counter leaves the guarded region, when the + * function returns or when the context aborted due to an unrecoverable error. **/ void swfdec_as_frame_push_block (SwfdecAsFrame *frame, const guint8 *start, commit 91adc003c115b3128ac86af06e0ac4b356bcbd6e Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 19:33:46 2007 +0100 clarify swfdec_player_new() documentation. diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 40d205c..7d665b5 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1984,8 +1984,10 @@ swfdec_player_unroot_object (SwfdecPlayer *player, GObject *object) * swfdec_player_new: * @debugger: %NULL or a #SwfdecAsDebugger to use for debugging this player. * - * Creates a new player. - * This function calls swfdec_init () for you if it wasn't called before. + * Creates a new player. This function is supposed to be used for testing. + * Because of this, the created player will behave as predictable as possible. + * For example, it will generate the same random number sequence every time. + * The function calls swfdec_init () for you if it wasn't called before. * * Returns: The new player **/ commit 4a87d4afbaf205fd24d5f3cdf43ec6866b5a36c1 Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 8 19:31:39 2007 +0100 add a "random-seed" proeprty to SwfdecAsContext This allows making random number generation predictable, which is useful for testing. swfdec_player_new() uses this already. diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c index 18afbe2..a429112 100644 --- a/libswfdec/swfdec_as_context.c +++ b/libswfdec/swfdec_as_context.c @@ -435,6 +435,7 @@ enum { enum { PROP_0, PROP_DEBUGGER, + PROP_RANDOM_SEED, PROP_ABORTED, PROP_UNTIL_GC }; @@ -448,7 +449,6 @@ swfdec_as_context_get_property (GObject *object, guint param_id, GValue *value, { SwfdecAsContext *context = SWFDEC_AS_CONTEXT (object); - switch (param_id) { case PROP_DEBUGGER: g_value_set_object (value, context->debugger); @@ -471,11 +471,13 @@ swfdec_as_context_set_property (GObject *object, guint param_id, const GValue *v { SwfdecAsContext *context = SWFDEC_AS_CONTEXT (object); - switch (param_id) { case PROP_DEBUGGER: context->debugger = SWFDEC_AS_DEBUGGER (g_value_dup_object (value)); break; + case PROP_RANDOM_SEED: + g_rand_set_seed (context->rand, g_value_get_uint (value)); + break; case PROP_UNTIL_GC: context->memory_until_gc = g_value_get_ulong (value); break; @@ -520,6 +522,10 @@ swfdec_as_context_class_init (SwfdecAsContextClass *klass) g_object_class_install_property (object_class, PROP_DEBUGGER, g_param_spec_object ("debugger", "debugger", "debugger used in this player", SWFDEC_TYPE_AS_DEBUGGER, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (object_class, PROP_RANDOM_SEED, + g_param_spec_uint ("random-seed", "random seed", + "seed used for calculating random numbers", + 0, G_MAXUINT32, 0, G_PARAM_WRITABLE)); /* FIXME: make this readwrite for replaying? */ g_object_class_install_property (object_class, PROP_ABORTED, g_param_spec_boolean ("aborted", "aborted", "set when the script engine aborts due to an error", FALSE, G_PARAM_READABLE)); diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index d08215d..40d205c 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1994,8 +1994,11 @@ swfdec_player_new (SwfdecAsDebugger *debugger) { SwfdecPlayer *player; + g_return_val_if_fail (debugger == NULL || SWFDEC_IS_AS_DEBUGGER (debugger), NULL); + swfdec_init (); - player = g_object_new (SWFDEC_TYPE_PLAYER, "debugger", debugger, NULL); + player = g_object_new (SWFDEC_TYPE_PLAYER, "random-seed", 0, + "debugger", debugger, NULL); return player; }
Seemingly Similar Threads
- 7 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_resource.c libswfdec/swfdec_resource.h libswfdec/swfdec_sprite_movie_as.c test/trace
- 11 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_resource.c libswfdec/swfdec_resource_request.c
- 4 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_resource.c test/image test/trace
- 36 commits - doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_amf.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_buffer.c libswfdec/swfdec_buffer.h
- 10 commits - doc/swfdec-sections.txt libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_loader.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie_clip_loader.c libswfdec/swfdec_movie.h