Benjamin Otte
2007-Jul-06 10:37 UTC
[Swfdec] Branch 'as' - 2 commits - libswfdec/swfdec_as_math.c test/trace
libswfdec/swfdec_as_math.c | 10 +++++++++- test/trace/Makefile.am | 9 +++++++++ test/trace/round-direction-5.swf |binary test/trace/round-direction-5.swf.trace | 5 +++++ test/trace/round-direction-6.swf |binary test/trace/round-direction-6.swf.trace | 5 +++++ test/trace/round-direction-7.swf |binary test/trace/round-direction-7.swf.trace | 5 +++++ test/trace/round-direction-8.swf |binary test/trace/round-direction-8.swf.trace | 5 +++++ test/trace/round-direction.as | 10 ++++++++++ 11 files changed, 48 insertions(+), 1 deletion(-) New commits: diff-tree 1ae03b097c0fb14a0ed89e955bfd016a02247eef (from 4e3d40276024ca6504884f00a94a930c65cb52ca) Author: Benjamin Otte <otte at gnome.org> Date: Fri Jul 6 11:37:55 2007 +0100 add test for round direction diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 423a732..447b109 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -620,6 +620,15 @@ EXTRA_DIST = \ removesprite-depths-7.swf.trace \ rotation-5.swf \ rotation-5.swf.trace \ + round-direction.as \ + round-direction-5.swf \ + round-direction-5.swf.trace \ + round-direction-6.swf \ + round-direction-6.swf.trace \ + round-direction-7.swf \ + round-direction-7.swf.trace \ + round-direction-8.swf \ + round-direction-8.swf.trace \ scope.swf \ scope.swf.trace \ scope2.swf \ diff --git a/test/trace/round-direction-5.swf b/test/trace/round-direction-5.swf new file mode 100644 index 0000000..7d23dfb Binary files /dev/null and b/test/trace/round-direction-5.swf differ diff --git a/test/trace/round-direction-5.swf.trace b/test/trace/round-direction-5.swf.trace new file mode 100644 index 0000000..39ef339 --- /dev/null +++ b/test/trace/round-direction-5.swf.trace @@ -0,0 +1,5 @@ +Check rounding direction +0 +-1 +1 +2 diff --git a/test/trace/round-direction-6.swf b/test/trace/round-direction-6.swf new file mode 100644 index 0000000..75cbbf9 Binary files /dev/null and b/test/trace/round-direction-6.swf differ diff --git a/test/trace/round-direction-6.swf.trace b/test/trace/round-direction-6.swf.trace new file mode 100644 index 0000000..39ef339 --- /dev/null +++ b/test/trace/round-direction-6.swf.trace @@ -0,0 +1,5 @@ +Check rounding direction +0 +-1 +1 +2 diff --git a/test/trace/round-direction-7.swf b/test/trace/round-direction-7.swf new file mode 100644 index 0000000..1fbb4d9 Binary files /dev/null and b/test/trace/round-direction-7.swf differ diff --git a/test/trace/round-direction-7.swf.trace b/test/trace/round-direction-7.swf.trace new file mode 100644 index 0000000..39ef339 --- /dev/null +++ b/test/trace/round-direction-7.swf.trace @@ -0,0 +1,5 @@ +Check rounding direction +0 +-1 +1 +2 diff --git a/test/trace/round-direction-8.swf b/test/trace/round-direction-8.swf new file mode 100644 index 0000000..e14a959 Binary files /dev/null and b/test/trace/round-direction-8.swf differ diff --git a/test/trace/round-direction-8.swf.trace b/test/trace/round-direction-8.swf.trace new file mode 100644 index 0000000..39ef339 --- /dev/null +++ b/test/trace/round-direction-8.swf.trace @@ -0,0 +1,5 @@ +Check rounding direction +0 +-1 +1 +2 diff --git a/test/trace/round-direction.as b/test/trace/round-direction.as new file mode 100644 index 0000000..3d2ccc1 --- /dev/null +++ b/test/trace/round-direction.as @@ -0,0 +1,10 @@ +// makeswf -v 7 -s 200x150 -r 1 -o round-direction.swf round-direction.as + +trace ("Check rounding direction"); + +trace (Math.round (-0.5)); +trace (Math.round (-1.5)); +trace (Math.round (0.5)); +trace (Math.round (1.5)); + +loadMovie ("FSCommand:quit", ""); diff-tree 4e3d40276024ca6504884f00a94a930c65cb52ca (from 6982d35c8223c70e0e2644710ac6ebc42f96901d) Author: Benjamin Otte <otte at gnome.org> Date: Fri Jul 6 11:36:31 2007 +0100 round direction is up diff --git a/libswfdec/swfdec_as_math.c b/libswfdec/swfdec_as_math.c index ad2468a..dff7c7d 100644 --- a/libswfdec/swfdec_as_math.c +++ b/libswfdec/swfdec_as_math.c @@ -50,7 +50,6 @@ MATH_FUN (cos) MATH_FUN (exp) MATH_FUN (floor) MATH_FUN (log) -MATH_FUN (round) MATH_FUN (sin) MATH_FUN (sqrt) MATH_FUN (tan) @@ -110,6 +109,15 @@ swfdec_as_math_random (SwfdecAsContext * SWFDEC_AS_VALUE_SET_NUMBER (ret, g_rand_double (cx->rand)); } +static void +swfdec_as_math_round (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + double d = swfdec_as_value_to_number (cx, &argv[0]); + + SWFDEC_AS_VALUE_SET_NUMBER (ret, trunc (d + 0.5)); +} + /* define some math constants if glib doesn't have them */ #ifndef G_LOG10E #define G_LOG10E 0.43429448190325182765
Apparently Analagous Threads
- Branch 'as' - 7 commits - libswfdec/swfdec_as_math.c libswfdec/swfdec_as_object.c libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie.c test/trace
- 5 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_math.c libswfdec/swfdec_as_number.c libswfdec/swfdec_as_script_function.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h
- Branch 'as' - 3 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_math.c libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_number.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_string.c
- Branch 'as' - 8 commits - libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_math.c libswfdec/swfdec_as_math.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_as_types.c
- Branch 'as' - 24 commits - configure.ac doc/Makefile.am doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_amf.c libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c