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)...