Displaying 20 results from an estimated 23 matches for "swfdec_as_stack_pop_n".
Did you mean:
swfdec_as_stack_pop
2007 Jun 17
2
Branch 'as' - libswfdec/swfdec_as_interpret.c
libswfdec/swfdec_as_interpret.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
New commits:
diff-tree 38fbc1389267e593b44041018cbb1750bdcce0fb (from aaca94203d8a0ccb8feb32c0d57df3401fca0350)
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Jun 17 14:19:45 2007 +0200
actually convert the values to a string when comparing strings
diff --git
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
...t
const char *s;
s = swfdec_as_value_to_string (cx, swfdec_as_stack_peek (cx->frame->stack, 2));
- swfdec_as_context_eval_set (cx, NULL, s, swfdec_as_stack_pop (cx->frame->stack));
+ swfdec_as_context_eval_set (cx, NULL, s, swfdec_as_stack_peek (cx->frame->stack, 1));
+ swfdec_as_stack_pop_n (cx->frame->stack, 2);
+}
+
+static const char *
+swfdec_as_interpret_eval (SwfdecAsContext *cx, SwfdecAsObject *obj,
+ SwfdecAsValue *val)
+{
+ if (SWFDEC_AS_VALUE_IS_STRING (val)) {
+ const char *s = SWFDEC_AS_VALUE_GET_STRING (val);
+ if (s != SWFDEC_AS_STR_EMPTY) {
+ swfde...
2007 Oct 14
0
4 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_sound.c test/trace
...e,
+ if (id > (cx->version > 4 ? 21 : 18)) {
+ SWFDEC_WARNING ("trying to SetProperty %u, doesn't exist", id);
+ goto error;
+ }
+ swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (movie), swfdec_movieclip_props[id].name,
swfdec_as_stack_peek (cx, 1));
-out:
+ swfdec_as_stack_pop_n (cx, 3);
+ return;
+
+error :
swfdec_as_stack_pop_n (cx, 3);
}
commit 9ee02d87b2f6837237a717b3b6232ebe7ec63c63
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Oct 14 11:41:36 2007 +0200
don't crash when decoding didn't produce any output (fixes #12793)
diff --git a/...
2007 Jun 28
0
Branch 'as' - 5 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c test/trace
...erpret.c b/libswfdec/swfdec_as_interpret.c
index 376f41f..09578b8 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -592,6 +592,7 @@ error:
if (n_args > swfdec_as_stack_get_size (frame->stack))
n_args = swfdec_as_stack_get_size (frame->stack);
swfdec_as_stack_pop_n (frame->stack, n_args);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_push (frame->stack));
return FALSE;
}
diff-tree 2966839c6ed4b0d33c7681654a80df45063f60dd (from 692c9a4cde349cc8c927e182c36de44a2e9c6a42)
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jun 28 15:03:24...
2007 May 29
0
Branch 'as' - 6 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_js_xml.c libswfdec/swfdec_tag.c player/swfplay.c
...ect);
- if (!swfdec_action_call (cx, n_args, JSINVOKE_CONSTRUCT))
- return JS_FALSE;
- fp->sp[-1] = OBJECT_TO_JSVAL (object);
- return JS_TRUE;
+ }
+
+ swfdec_action_create (fun, n_args);
+ return;
fail:
- fp->sp -= 2 + n_args;
- fp->sp[-1] = JSVAL_VOID;
- return JS_TRUE;
+ swfdec_as_stack_pop_n (cx->frame->stack, n_args);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_peek (cx->frame->stack, 1));
}
-#endif
static void
swfdec_action_init_object (SwfdecAsContext *cx, guint action, const guint8 *data, guint len)
@@ -2275,10 +2265,8 @@ const SwfdecActionSpec swfdec_as_acti...
2007 Oct 26
0
2 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.h test/trace
...= SWFDEC_AS_VALUE_GET_OBJECT (val);
+ } else {
+ proto = NULL;
+ }
+ } else {
+ object = NULL;
+ proto = NULL;
+ }
+
+ val = swfdec_as_stack_pop (cx);
+ argc = swfdec_as_value_to_integer (cx, val);
+
+ if (argc > 0) {
+ swfdec_as_stack_ensure_size (cx, argc);
+ argv = swfdec_as_stack_pop_n (cx, argc);
+ } else {
+ argv = NULL;
+ }
+
+ if (proto == NULL)
+ return;
+
+ for (i = 0; i < argc; i++) {
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[i]))
+ continue;
+ interface = SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]);
+ swfdec_as_object_get_variable (interface, SW...
2007 Oct 15
0
8 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_sound.c libswfdec/swfdec_sound.h test/trace
...t_eval()
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index a3c0c15..f2022b4 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -677,24 +677,6 @@ swfdec_action_set_variable (SwfdecAsContext *cx, guint action, const guint8 *dat
swfdec_as_stack_pop_n (cx, 2);
}
-static const char *
-swfdec_as_interpret_eval (SwfdecAsContext *cx, SwfdecAsObject *obj,
- SwfdecAsValue *val)
-{
- if (SWFDEC_AS_VALUE_IS_STRING (val)) {
- const char *s = SWFDEC_AS_VALUE_GET_STRING (val);
- if (s != SWFDEC_AS_STR_EMPTY) {
- swfdec_as_context_eval (c...
2007 Jul 13
0
12 commits - AUTHORS doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_array.h libswfdec/swfdec_as_context.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h
...argument from swfdec_as_object_create()
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 938165e..d011028 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -1360,7 +1360,7 @@ swfdec_action_new_object (SwfdecAsContex
}
swfdec_as_stack_pop_n (cx, 2);
- swfdec_as_object_create (fun, n_args, NULL, TRUE);
+ swfdec_as_object_create (fun, n_args, NULL);
return;
fail:
@@ -1397,7 +1397,7 @@ swfdec_action_new_method (SwfdecAsContex
}
swfdec_as_stack_pop_n (cx, 3);
- swfdec_as_object_create (fun, n_args, NULL, TRUE);
+ swfdec_...
2007 Jul 12
0
Branch 'as' - 6 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie_as.c test/trace
...gt;depth);
+ if (SWFDEC_IS_SPRITE_MOVIE (new_movie)) {
+ g_queue_push_tail (SWFDEC_PLAYER (cx)->init_queue, new_movie);
+ swfdec_movie_queue_script (new_movie, SWFDEC_EVENT_LOAD);
+ swfdec_movie_run_construct (new_movie);
+ }
swfdec_movie_initialize (new_movie);
}
swfdec_as_stack_pop_n (cx, 3);
diff-tree 5a0de2944bba30fd70804ba25412e589ef62e666 (from b7672f1e4e0ee0a598397080589d6a2a156bf2cf)
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jul 12 15:16:34 2007 +0200
return the path of the movie as debug string
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swf...
2007 Apr 12
0
Branch 'as' - 15 commits - 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 libswfdec/swfdec_as_function.h libswfdec/swfdec_as_interpret.c
...S_OBJECT (swfdec_as_stack_peek (frame->stack, 1)) ||
!SWFDEC_AS_VALUE_IS_OBJECT (swfdec_as_stack_peek (frame->stack, 2)))
@@ -667,7 +669,20 @@ swfdec_action_call (SwfdecAsContext *cx,
goto error;
thisp = SWFDEC_AS_VALUE_GET_OBJECT (swfdec_as_stack_peek (frame->stack, 2));
swfdec_as_stack_pop_n (frame->stack, 2);
- swfdec_as_function_call (fun, thisp, n_args);
+ /* swap arguments on the stack */
+ /* FIXME: can we somehow keep this order please, it might be interesting for debuggers */
+ for (i = 0; i < n_args / 2; i++) {
+ SwfdecAsValue tmp = *swfdec_as_stack_peek (frame->...
2007 May 24
0
Branch 'as' - 11 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_number.c libswfdec/swfdec_as_object.c
...ec_as_object_unroot (ret);
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index a1a3625..f0d27ce 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -1112,7 +1112,7 @@ swfdec_action_create (SwfdecAsFunction *
}
if (n_args)
swfdec_as_stack_pop_n (stack, n_args);
- object = swfdec_as_object_create (fun, n_args, swfdec_as_stack_peek (stack, 0));
+ object = swfdec_as_object_create (fun, n_args, swfdec_as_stack_peek (stack, 0), TRUE);
g_assert (object);
SWFDEC_AS_VALUE_SET_OBJECT (swfdec_as_stack_peek (stack, 1), object);
}
diff --git...
2007 May 22
0
Branch 'as' - 9 commits - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_script_function.c
...goto error;
- thisp = SWFDEC_AS_VALUE_GET_OBJECT (swfdec_as_stack_peek (frame->stack, 2));
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (swfdec_as_stack_peek (frame->stack, 2))) {
+ thisp = NULL;
+ } else {
+ thisp = SWFDEC_AS_VALUE_GET_OBJECT (swfdec_as_stack_peek (frame->stack, 2));
+ }
swfdec_as_stack_pop_n (frame->stack, 2);
/* sanitize argument count */
if (n_args > swfdec_as_stack_get_size (frame->stack))
diff --git a/libswfdec/swfdec_as_native_function.c b/libswfdec/swfdec_as_native_function.c
index b373e3a..dde7652 100644
--- a/libswfdec/swfdec_as_native_function.c
+++ b/libswfdec/...
2007 Aug 20
0
15 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_super.c libswfdec/swfdec_as_with.c
...cess = swfdec_as_object_delete_variable (SWFDEC_AS_VALUE_GET_OBJECT (val), name);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
+ success = swfdec_as_object_delete_variable (
+ SWFDEC_AS_VALUE_GET_OBJECT (val), name) == SWFDEC_AS_DELETE_DELETED;
+ }
SWFDEC_AS_VALUE_SET_BOOLEAN (val, success);
swfdec_as_stack_pop_n (cx, 1);
}
@@ -1724,10 +1726,12 @@ swfdec_action_delete2 (SwfdecAsContext *
{
SwfdecAsValue *val;
const char *name;
+ gboolean success = FALSE;
val = swfdec_as_stack_peek (cx, 1);
name = swfdec_as_value_to_string (cx, val);
- SWFDEC_AS_VALUE_SET_BOOLEAN (val, swfdec_as_frame_del...
2007 May 23
0
Branch 'as' - 7 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_strings.c
...== NULL)
- return JS_FALSE;
- if (!JS_SetProperty (cx, object, s, &fp->sp[-2 - 2 * i]))
- return JS_FALSE;
+ const char *s = swfdec_as_value_to_string (cx, swfdec_as_stack_peek (stack, 2));
+ swfdec_as_object_set_variable (object, s, swfdec_as_stack_peek (stack, 1));
+ swfdec_as_stack_pop_n (stack, 2);
}
- fp->sp -= 2 * n_args;
- fp->sp[-1] = OBJECT_TO_JSVAL (object);
- return JS_TRUE;
+ SWFDEC_AS_VALUE_SET_OBJECT (swfdec_as_stack_push (stack), object);
}
-#endif
static void
swfdec_action_init_array (SwfdecAsContext *cx, guint action, const guint8 *data, guint len)
@...
2007 Nov 14
0
7 commits - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_super.c libswfdec/swfdec_as_super.h
...g super object on frame");
- swfdec_as_super_replace (SWFDEC_AS_SUPER (fun), NULL);
+ swfdec_as_super_new_chain (frame, SWFDEC_AS_SUPER (fun), NULL);
}
- return TRUE;
+ return frame;
error:
n_args += 2;
@@ -834,7 +838,7 @@ error:
n_args = swfdec_as_stack_get_size (cx);
swfdec_as_stack_pop_n (cx, n_args);
SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_push (cx));
- return FALSE;
+ return NULL;
}
static void
@@ -858,7 +862,10 @@ swfdec_action_call_function (SwfdecAsContext *cx, guint action, const guint8 *da
SWFDEC_AS_VALUE_SET_NULL (thisp);
SWFDEC_AS_VALUE_SET_UNDEFI...
2007 Jul 07
0
Branch 'as' - 7 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_super.c libswfdec/swfdec_as_super.h libswfdec/swfdec_as_with.c test/trace
...e at least 2 elements big */
static gboolean
-swfdec_action_call (SwfdecAsContext *cx, guint n_args, gboolean use_super)
+swfdec_action_call (SwfdecAsContext *cx, guint n_args)
{
SwfdecAsFunction *fun;
SwfdecAsObject *thisp;
@@ -592,11 +592,9 @@ swfdec_action_call (SwfdecAsContext *cx,
swfdec_as_stack_pop_n (frame->stack, n_args);
swfdec_as_function_call (fun, thisp, n_args, swfdec_as_stack_peek (frame->stack, 0),
swfdec_as_stack_peek (frame->stack, 1));
- if (use_super) {
- if (cx->frame->super && SWFDEC_AS_SUPER (frame->super)->object) {
- SWFDEC_LOG...
2007 Aug 27
0
8 commits - libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_number.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h test/trace vivified/core
...fdec_as_value_to_number (cx, swfdec_as_stack_peek (cx, 3))) {
swfdec_as_stack_ensure_size (cx, 7);
- n_args = 5;
- /* yay for order */
- swfdec_as_stack_swap (cx, 4, 7);
- swfdec_as_stack_swap (cx, 5, 6);
- }
- if (!SWFDEC_AS_VALUE_IS_OBJECT (swfdec_as_stack_peek (cx, 1))) {
- swfdec_as_stack_pop_n (cx, n_args + 2);
- return;
+ rect.x0 = swfdec_as_value_to_number (cx, swfdec_as_stack_peek (cx, 7));
+ rect.y0 = swfdec_as_value_to_number (cx, swfdec_as_stack_peek (cx, 6));
+ rect.x1 = swfdec_as_value_to_number (cx, swfdec_as_stack_peek (cx, 5));
+ rect.y1 = swfdec_as_value_to_num...
2007 Oct 25
0
6 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_event.c libswfdec/swfdec_event.h libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_resource.c
...->depth);
- if (SWFDEC_IS_SPRITE_MOVIE (new_movie)) {
- g_queue_push_tail (SWFDEC_PLAYER (cx)->init_queue, new_movie);
- swfdec_movie_queue_script (new_movie, SWFDEC_EVENT_LOAD);
- swfdec_movie_run_construct (new_movie);
- }
- swfdec_movie_initialize (new_movie);
}
}
swfdec_as_stack_pop_n (cx, 3);
diff --git a/libswfdec/swfdec_event.c b/libswfdec/swfdec_event.c
index 03f05fa..c368ae3 100644
--- a/libswfdec/swfdec_event.c
+++ b/libswfdec/swfdec_event.c
@@ -145,56 +145,14 @@ swfdec_event_list_free (SwfdecEventList *list)
g_free (list);
}
-static const char *
-swfdec_event_list_c...
2007 Aug 20
0
Branch 'vivi' - 60 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c
...cess = swfdec_as_object_delete_variable (SWFDEC_AS_VALUE_GET_OBJECT (val), name);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
+ success = swfdec_as_object_delete_variable (
+ SWFDEC_AS_VALUE_GET_OBJECT (val), name) == SWFDEC_AS_DELETE_DELETED;
+ }
SWFDEC_AS_VALUE_SET_BOOLEAN (val, success);
swfdec_as_stack_pop_n (cx, 1);
}
@@ -1724,10 +1726,12 @@ swfdec_action_delete2 (SwfdecAsContext *
{
SwfdecAsValue *val;
const char *name;
+ gboolean success = FALSE;
val = swfdec_as_stack_peek (cx, 1);
name = swfdec_as_value_to_string (cx, val);
- SWFDEC_AS_VALUE_SET_BOOLEAN (val, swfdec_as_frame_del...
2007 Jun 27
0
Branch 'as' - 16 commits - configure.ac libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_script_function.c
...ct_set_variable (cx->frame->var_object, name,
+ if (cx->frame->is_local) {
+ target = SWFDEC_AS_OBJECT (cx->frame);
+ } else {
+ target = cx->frame->target;
+ }
+ swfdec_as_object_set_variable (target, name,
swfdec_as_stack_peek (cx->frame->stack, 1));
swfdec_as_stack_pop_n (cx->frame->stack, 2);
}
@@ -1685,10 +1663,16 @@ static void
swfdec_action_define_local2 (SwfdecAsContext *cx, guint action, const guint8 *data, guint len)
{
SwfdecAsValue val = { 0, };
+ SwfdecAsObject *target;
const char *name;
name = swfdec_as_value_to_string (cx, swfdec_as_...