search for: swfdec_action_binary

Displaying 14 results from an estimated 14 matches for "swfdec_action_binary".

2007 Jan 31
0
Branch 'interpreter' - 3 commits - libswfdec/js libswfdec/swfdec_script.c
...d (); + return JS_FALSE; + } cx->fp->sp--; if (((SwfdecScript *) cx->fp->swf)->version < 5) { cx->fp->sp[-1] = INT_TO_JSVAL (cond ? 1 : 0); @@ -1655,8 +1665,8 @@ static const SwfdecActionSpec actions[25 [0x0b] = { "Subtract", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, [0x0c] = { "Multiply", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, [0x0d] = { "Divide", NULL, 2, 1, { NULL, swfdec_action_binary, swfd...
2007 Apr 16
0
Branch 'as' - 3 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...;stack, 1), cond); } - return JS_TRUE; } -#endif static void swfdec_action_equals2 (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) @@ -2160,10 +2154,8 @@ const SwfdecActionSpec swfdec_as_actions [SWFDEC_AS_ACTION_SUBTRACT] = { "Subtract", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, [SWFDEC_AS_ACTION_MULTIPLY] = { "Multiply", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, [SWFDEC_AS_ACTION_DIVIDE] = { "Divide", NULL,...
2007 Nov 07
0
14 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_script.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_tag.c libswfdec/swfdec_text_field_movie.c
...}, + [SWFDEC_AS_ACTION_TOGGLE_QUALITY] = { "ToggleQuality", NULL, -1, -1, NULL, 1 }, + /* version 2 */ + [SWFDEC_AS_ACTION_STOP_SOUNDS] = { "StopSounds", NULL, 0, 0, swfdec_action_stop_sounds, 2 }, /* version 4 */ [SWFDEC_AS_ACTION_ADD] = { "Add", NULL, 2, 1, swfdec_action_binary, 4 }, [SWFDEC_AS_ACTION_SUBTRACT] = { "Subtract", NULL, 2, 1, swfdec_action_binary, 4 }, @@ -3196,16 +3197,17 @@ const SwfdecActionSpec swfdec_as_actions[256] = { [SWFDEC_AS_ACTION_STRING_GREATER] = { "StringGreater", NULL, -1, -1, NULL, 6 }, /* version 7 */ [SWFDEC_...
2007 Jan 29
0
Branch 'interpreter' - 18 commits - libswfdec/swfdec_image.c libswfdec/swfdec_image.h libswfdec/swfdec_js.c libswfdec/swfdec_js_color.c libswfdec/swfdec_js_sound.c libswfdec/swfdec_pattern.c libswfdec/swfdec_scriptable.c libswfdec/swfdec_script.c
...9] = { "StopSounds", NULL }, + [0x09] = { "StopSounds", NULL, 0, 0, { swfdec_action_stop_sounds, swfdec_action_stop_sounds, swfdec_action_stop_sounds, swfdec_action_stop_sounds, swfdec_action_stop_sounds } }, /* version 4 */ [0x0a] = { "Add", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, [0x0b] = { "Subtract", NULL, 2, 1, { NULL, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary, swfdec_action_binary } }, diff-tree 766926a5baf0ca465c0010f2cf157a41498cd841 (from e5233b84a86161a483eb167...
2007 Jan 25
0
Branch 'interpreter' - 28 commits - configure.ac libswfdec/js libswfdec/swfdec_buffer.c libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_js.c libswfdec/swfdec_js_global.c libswfdec/swfdec_js.h libswfdec/swfdec_js_movie.c libswfdec/swfdec_player.c
...nome.org> Date: Sun Jan 21 20:48:06 2007 +0100 fix binary ops for undefined2-7.swf 13/44 failures diff --git a/libswfdec/swfdec_script.c b/libswfdec/swfdec_script.c index 3bbd168..104af78 100644 --- a/libswfdec/swfdec_script.c +++ b/libswfdec/swfdec_script.c @@ -540,8 +540,15 @@ swfdec_action_binary (JSContext *cx, gui rval = cx->fp->sp[-1]; lval = cx->fp->sp[-2]; - l = swfdec_action_to_number (cx, lval); - r = swfdec_action_to_number (cx, rval); + if (((SwfdecScript *) cx->fp->swf)->version < 7) { + l = swfdec_action_to_number (cx, lval); + r = swfdec_...
2007 Apr 04
0
Branch 'as' - 4 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
...ARNING ("specified target does not reference a movie clip"); + goto out; + } + jsobj = JSVAL_TO_OBJECT (val); + + if (!JS_SetProperty (cx, jsobj, properties[id], &cx->fp->sp[-1])) + return JS_FALSE; + +out: + cx->fp->sp -= 3; + return JS_TRUE; +} + +static void +swfdec_action_binary (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) +{ + jsval lval, rval; + double l, r; + + rval = cx->fp->sp[-1]; + lval = cx->fp->sp[-2]; + if (((SwfdecScript *) cx->fp->swf)->version < 7) { + l = swfdec_value_to_number (cx, lval); + r = swfdec_...
2007 Feb 01
0
Branch 'interpreter' - 9 commits - libswfdec/js libswfdec/swfdec_script.c libswfdec/swfdec_script.h player/swfdec_debug_stack.c test/trace
...oNumber (cx, val, &d)) return 0; return isnan (d) ? 0 : d; + } else if (JSVAL_IS_OBJECT(val) && (((SwfdecScript *) cx->fp->swf)->version >= 6)) { + return JSVAL_IS_NULL (val) ? 0 : *cx->runtime->jsNaN; } else { return 0; } @@ -727,6 +729,8 @@ swfdec_action_binary (JSContext *cx, gui l = l * r; break; case 0x0d: + if (isnan (r)) + r = 0; if (r == 0 && ((SwfdecScript *) cx->fp->swf)->version < 5) { JSString *str = JS_InternString (cx, "#ERROR#"); if (str == NULL) @@ -734,7 +738,7 @@ swfdec_actio...
2007 Feb 06
0
109 commits - configure.ac libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_buffer.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_codec_screen.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h
...oNumber (cx, val, &d)) return 0; return isnan (d) ? 0 : d; + } else if (JSVAL_IS_OBJECT(val) && (((SwfdecScript *) cx->fp->swf)->version >= 6)) { + return JSVAL_IS_NULL (val) ? 0 : *cx->runtime->jsNaN; } else { return 0; } @@ -727,6 +729,8 @@ swfdec_action_binary (JSContext *cx, gui l = l * r; break; case 0x0d: + if (isnan (r)) + r = 0; if (r == 0 && ((SwfdecScript *) cx->fp->swf)->version < 5) { JSString *str = JS_InternString (cx, "#ERROR#"); if (str == NULL) @@ -734,7 +738,7 @@ swfdec_actio...
2007 Oct 28
1
2 commits - libswfdec/swfdec_as_interpret.c test/trace
...lt;otte at gnome.org> Date: Sun Oct 28 19:48:40 2007 +0100 fix divide by zero crash diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c index 7125e05..c331413 100644 --- a/libswfdec/swfdec_as_interpret.c +++ b/libswfdec/swfdec_as_interpret.c @@ -948,6 +948,7 @@ swfdec_action_binary (SwfdecAsContext *cx, guint action, const guint8 *data, gui case SWFDEC_AS_ACTION_DIVIDE: if (cx->version < 5) { if (r == 0) { + swfdec_as_stack_pop (cx); SWFDEC_AS_VALUE_SET_STRING (swfdec_as_stack_peek (cx, 1), SWFDEC_AS_STR__ERROR_); return; } commit 45f142e1ddb65...
2007 Mar 12
0
11 commits - libswfdec/js libswfdec/swfdec_loader.c libswfdec/swfdec_root_sprite.c libswfdec/swfdec_script.c player/swfdebug.c player/swfdec_player_manager.c test/trace
...LL (val)) { + return JS_FALSE; + } else if (JSVAL_IS_VOID (val)) { + return JS_FALSE; + } else if (JSVAL_IS_OBJECT (val)) { + return JS_TRUE; + } + g_assert_not_reached (); + return JS_FALSE; +} + static double swfdec_value_to_number (JSContext *cx, jsval val) { @@ -930,7 +979,7 @@ swfdec_action_binary (JSContext *cx, gui static JSString * swfdec_action_to_string_5 (JSContext *cx, jsval val) { - if (JSVAL_IS_VOID (val) || JSVAL_IS_NULL (val)) + if (JSVAL_IS_VOID (val)) return cx->runtime->emptyString; return js_ValueToString (cx, val); } @@ -1936,6 +1985,17 @@ swfdec_action_to...
2007 Mar 05
0
11 commits - configure.ac libswfdec/swfdec_js_movie.c libswfdec/swfdec_root_movie.c libswfdec/swfdec_root_movie.h libswfdec/swfdec_script.c libswfdec/swfdec_sprite.c libswfdec/swfdec_sprite.h libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_swf_decoder.c
...ntext *cx, Sw frame = swfdec_sprite_get_frame (SWFDEC_SPRITE_MOVIE (movie)->sprite, name); } else { /* FIXME: how do we treat undefined etc? */ - frame = swfdec_action_to_number (cx, val); + frame = swfdec_value_to_number (cx, val); } return frame; } @@ -824,8 +824,8 @@ swfdec_action_binary (JSContext *cx, gui rval = cx->fp->sp[-1]; lval = cx->fp->sp[-2]; if (((SwfdecScript *) cx->fp->swf)->version < 7) { - l = swfdec_action_to_number (cx, lval); - r = swfdec_action_to_number (cx, rval); + l = swfdec_value_to_number (cx, lval); + r = swfdec...
2007 Mar 22
0
11 commits - libswfdec/swfdec_color.c libswfdec/swfdec_flv_decoder.c libswfdec/swfdec_js_net_stream.c libswfdec/swfdec_movie.c libswfdec/swfdec_net_stream.c libswfdec/swfdec_net_stream.h libswfdec/swfdec_pattern.c libswfdec/swfdec_script.c NEWS test/trace
...*d = *cx->runtime->jsNaN; return JS_TRUE; + } else if (JSVAL_IS_STRING (val) && + JS_GetStringLength (JSVAL_TO_STRING (val)) == 0) { + *d = *cx->runtime->jsNaN; + return JS_TRUE; } else { return JS_ValueToNumber (cx, val, d); } @@ -973,20 +977,17 @@ swfdec_action_binary (JSContext *cx, gui l = l * r; break; case 0x0d: - if (isnan (r)) - r = 0; - if (r == 0 && ((SwfdecScript *) cx->fp->swf)->version < 5) { - JSString *str = JS_InternString (cx, "#ERROR#"); - if (str == NULL) - return JS_FALSE; - cx->fp...
2007 Apr 05
0
Branch 'as' - 9 commits - configure.ac libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...e clip"); - goto out; - } - jsobj = JSVAL_TO_OBJECT (val); - - if (!JS_SetProperty (cx, jsobj, properties[id], &cx->fp->sp[-1])) - return JS_FALSE; - -out: - cx->fp->sp -= 3; - return JS_TRUE; + swfdec_as_stack_pop (cx->frame->stack); } +#if 0 static void swfdec_action_binary (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) { @@ -925,52 +918,6 @@ swfdec_action_add2_7 (SwfdecAsContext *c } static void -swfdec_action_get_member (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) -{ - const char *s; - jsval o; - - s = swfdec_js_to_s...
2007 Jan 31
0
Branch 'interpreter' - 20 commits - autogen.sh configure.ac libswfdec/js libswfdec/swfdec_debug.h libswfdec/swfdec_js.c libswfdec/swfdec_js_color.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_script.c
...JSVAL_TO_DOUBLE (val); - } else if (JSVAL_IS_BOOLEAN (val)) { - return JSVAL_TO_BOOLEAN (val); - } else if (JSVAL_IS_STRING (val)) { - double d; - if (!JS_ValueToNumber (cx, val, &d)) - return 0; - return isnan (d) ? 0 : d; - } else { - return 0; - } -} - static JSBool swfdec_action_binary (JSContext *cx, guint action, const guint8 *data, guint len) { @@ -1274,6 +1378,32 @@ swfdec_action_shift (JSContext *cx, guin return JS_NewNumberValue (cx, d, &cx->fp->sp[-1]); } +static JSBool +swfdec_action_to_integer (JSContext *cx, guint action, const guint8 *data, guint len)...