search for: swfdecasstack

Displaying 18 results from an estimated 18 matches for "swfdecasstack".

2007 Mar 29
0
Branch 'as' - 9 commits - configure.ac doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_stack.c
...#define swfdec_as_stack_peek(stack,n) (&(stack)->cur[-(gssize)(n)]) #define swfdec_as_stack_pop(stack) (--(stack)->cur) -#define swfdec_as_stack_push(stack,val) (*(stack)->cur++) +#define swfdec_as_stack_push(stack,val) (*(stack)->cur++ = *(val)) void swfdec_as_stack_mark (SwfdecAsStack * stack); void swfdec_as_stack_ensure_size (SwfdecAsStack * stack, diff-tree b65aacea6f0606a3402f16fb2af36199e587ded0 (from 147645d82919dbf900f8f7aafec62282550215ce) Author: Benjamin Otte <otte@gnome.org> Date: Thu Mar 29 13:33:06 2007 +0200 add a huge enum for all actions diff --gi...
2007 Apr 16
0
Branch 'as' - 3 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...b/libswfdec/swfdec_as_interpret.c @@ -1790,40 +1790,60 @@ swfdec_action_extends (SwfdecAsContext * return JS_FALSE; return JS_TRUE; } +#endif + +static gboolean +swfdec_action_do_enumerate (SwfdecAsObject *object, const SwfdecAsValue *val, + SwfdecAsVariable *var, gpointer stackp) +{ + SwfdecAsStack *stack = stackp; + + if (var->flags | SWFDEC_AS_VARIABLE_DONT_ENUM) + return TRUE; + swfdec_as_stack_ensure_left (stack, 1); + *swfdec_as_stack_push (stack) = *val; + return TRUE; +} + +static void +swfdec_action_enumerate (SwfdecAsContext *cx, guint action, const guint8 *data, guint len)...
2007 Apr 04
0
Branch 'as' - 9 commits - 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_stack.c libswfdec/swfdec_as_stack.h
...+ frame->constant_pool_buffer = swfdec_buffer_new_subbuffer (frame->script->buffer, + data - frame->script->buffer->data, len); } static void swfdec_action_push (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) { - /* FIXME: supply API for this */ + SwfdecAsStack *stack = cx->frame->stack; SwfdecBits bits; - guint stackspace = cx->fp->spend - cx->fp->sp; swfdec_bits_init_data (&bits, data, len); - while (swfdec_bits_left (&bits) && stackspace-- > 0) { + while (swfdec_bits_left (&bits)) { guint type =...
2007 Apr 12
0
Branch 'as' - 14 commits - libswfdec-gtk/swfdec_playback_alsa.c 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
...LL }; diff --git a/libswfdec/swfdec_as_types.h b/libswfdec/swfdec_as_types.h index b20b2e6..96fe3b4 100644 --- a/libswfdec/swfdec_as_types.h +++ b/libswfdec/swfdec_as_types.h @@ -42,7 +42,7 @@ typedef struct _SwfdecAsFunction SwfdecA typedef struct _SwfdecAsObject SwfdecAsObject; typedef struct _SwfdecAsStack SwfdecAsStack; typedef struct _SwfdecAsValue SwfdecAsValue; -typedef void (* SwfdecAsNative) (SwfdecAsContext *context, SwfdecAsObject *thisp, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval); +typedef void (* SwfdecAsNative) (SwfdecAsObject *thisp, guint argc, SwfdecAsValue *argv, SwfdecAs...
2007 Jul 02
0
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
...variable); return TRUE; } diff --git a/libswfdec/swfdec_as_stack.c b/libswfdec/swfdec_as_stack.c index 0354b49..2b9f678 100644 --- a/libswfdec/swfdec_as_stack.c +++ b/libswfdec/swfdec_as_stack.c @@ -88,7 +88,7 @@ swfdec_as_stack_ensure_size (SwfdecAsSta } void -swfdec_as_stack_ensure_left (SwfdecAsStack *stack, guint n_elements) +swfdec_as_stack_ensure_free (SwfdecAsStack *stack, guint n_elements) { g_return_if_fail (stack != NULL); diff --git a/libswfdec/swfdec_as_stack.h b/libswfdec/swfdec_as_stack.h index a415406..ec25a71 100644 --- a/libswfdec/swfdec_as_stack.h +++ b/libswfdec/swfdec_as_...
2007 Jun 20
1
Branch 'as' - 2 commits - libswfdec/swfdec_as_interpret.c
libswfdec/swfdec_as_interpret.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) New commits: diff-tree 9c5cb7cb9f6278896bc8a1e7cd7fb541b079c8de (from 1e19719b58b5cfcb800c81a5f5432c3ad662dbbc) Author: Benjamin Otte <otte at gnome.org> Date: Wed Jun 20 20:58:52 2007 +0200 the modulo arguments were mixed diff --git a/libswfdec/swfdec_as_interpret.c
2007 Jul 12
0
15 commits - doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt INSTALL libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.h
...aee8f21 100644 --- a/player/swfdec_debug_stack.c +++ b/player/swfdec_debug_stack.c @@ -71,15 +71,11 @@ swfdec_debug_stack_set_model (SwfdecDebu context= SWFDEC_AS_CONTEXT (debug->manager->player); frame = context->frame; if (frame) { - SwfdecAsValue *val = context->cur; - SwfdecAsStack *stack = context->stack; + SwfdecAsStackIterator siter; + SwfdecAsValue *val; guint i = 0; - while (val != frame->stack_begin) { - if (val == &stack->elements[0]) { - stack = stack->next; - val = &stack->elements[stack->used_elements]; - } - va...
2007 May 21
0
Branch 'as' - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_script_function.c
...gt;argv[i]); } @@ -102,18 +102,15 @@ swfdec_as_frame_init (SwfdecAsFrame *fra } SwfdecAsFrame * -swfdec_as_frame_new (SwfdecAsObject *thisp, SwfdecScript *script) +swfdec_as_frame_new (SwfdecAsContext *context, SwfdecScript *script) { - SwfdecAsContext *context; SwfdecAsFrame *frame; SwfdecAsStack *stack; gsize size; - g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (thisp), NULL); - g_return_val_if_fail (thisp->properties, NULL); + g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL); g_return_val_if_fail (script != NULL, NULL); - context = thisp->context; stack =...
2007 Mar 29
0
Branch 'as' - 9 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/js libswfdec/Makefile.am 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
...wfdec_as_stack_get_size (context->frame->stack); + n_args = MIN (available_args, n_args); + } else { + n_args = 0; + } + /* now do different things depending on if we're a native function or not */ + if (function->native) { + if (n_args < function->min_args) { + SwfdecAsStack *stack = context->frame->stack; + if (n_args == 0) { + SwfdecAsValue value = { SWFDEC_TYPE_AS_UNDEFINED, }; + swfdec_as_stack_ensure_size (stack, 1); + swfdec_as_stack_push (stack, &value); + } else { + stack->cur -= (n_args - 1); + SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_st...
2007 Jul 30
0
10 commits - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_super.c libswfdec/swfdec_video_movie_as.c test/trace
...(SwfdecAsFram void swfdec_as_frame_preload (SwfdecAsFrame *frame) { - SwfdecAsObject *object; + SwfdecAsObject *object, *args; guint i, current_reg = 1; SwfdecScript *script; - SwfdecAsValue val; + SwfdecAsValue val = { 0, }; const SwfdecAsValue *cur; SwfdecAsContext *context; SwfdecAsStackIterator iter; @@ -561,17 +561,30 @@ swfdec_as_frame_preload (SwfdecAsFrame * if (frame->script == NULL) return; - + /* setup */ object = SWFDEC_AS_OBJECT (frame); context = object->context; script = frame->script; - if (script->flags & SWFDEC_SCRIPT_PRELOAD_THIS...
2007 Jul 13
0
3 commits - doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c
...variables on + * it. These are local variables inside the executing function. So you can use + * functions such as swfdec_as_object_get_variable() to inspect them. + */ + +/** + * SwfdecAsFrame: + * + * the object used to represent an executing function. + */ + /*** STACK ITERATOR ***/ +/** + * SwfdecAsStackIterator: + * + * This is a struct used to walk the stack of a frame. It is supposed to be + * allocated on the stack. All of its members are private. + */ + SwfdecAsValue * swfdec_as_stack_iterator_init_arguments (SwfdecAsStackIterator *iter, SwfdecAsFrame *frame) { @@ -57,6 +87,23 @@ swfdec_as...
2007 Mar 28
0
Branch 'as' - 3 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_types.c
...t * scope; /* scope object coming after this */ + SwfdecAsObject * var_object; /* new variables go here */ + SwfdecAsValue * registers; /* the registers */ + guint n_registers; /* number of allocated registers */ + SwfdecConstantPool * constant_pool; /* constant pool currently in use */ + //SwfdecAsStack * stack; /* variables on the stack */ +}; + +struct _SwfdecAsFrameClass { + SwfdecAsObjectClass object_class; +}; + +GType swfdec_as_frame_get_type (void); + +SwfdecAsFrame * swfdec_as_frame_new (SwfdecAsContext * context, + SwfdecAsObject * thisp, + SwfdecScript * script); + +...
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
...terpret.c @@ -1192,35 +1192,31 @@ fail: fp->sp[-1] = JSVAL_VOID; return JS_TRUE; } +#endif static void swfdec_action_init_object (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) { - JSStackFrame *fp = cx->fp; - JSObject *object; - guint n_args; - gulong i; + SwfdecAsStack *stack = cx->frame->stack; + SwfdecAsObject *object; + guint i, n_args; - if (!JS_ValueToECMAUint32 (cx, fp->sp[-1], &n_args)) - return JS_FALSE; - if (!swfdec_script_ensure_stack (cx, 2 * n_args + 1)) - return JS_FALSE; + n_args = swfdec_as_value_to_integer (cx, swfdec_as...
2007 Aug 16
0
Branch 'vivi' - 18 commits - configure.ac doc/swfdec-sections.txt libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_types.h libswfdec/swfdec_player.c vivified/core vivified/ui
...if (frame->argc == 0) { + iter->current = NULL; + return NULL; + } + context = SWFDEC_AS_OBJECT (frame)->context; if (frame->argv) { iter->stack = NULL; iter->current = (SwfdecAsValue *) frame->argv; } else { - iter->stack = context->stack; + SwfdecAsStack *stack = context->stack; + SwfdecAsValue *end; iter->current = frame->stack_begin - 1; + end = context->cur; + while (iter->current < stack->elements || + iter->current > end) { + stack = stack->next; + end = &stack->elements[stack->us...
2007 Jun 12
0
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
...EMPTY); diff --git a/libswfdec/swfdec_as_types.h b/libswfdec/swfdec_as_types.h index 67b87b5..0dc580f 100644 --- a/libswfdec/swfdec_as_types.h +++ b/libswfdec/swfdec_as_types.h @@ -45,7 +45,11 @@ typedef struct _SwfdecAsObject SwfdecAsO typedef struct _SwfdecAsScope SwfdecAsScope; typedef struct _SwfdecAsStack SwfdecAsStack; typedef struct _SwfdecAsValue SwfdecAsValue; -typedef void (* SwfdecAsNative) (SwfdecAsObject *thisp, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval); +typedef void (* SwfdecAsNative) (SwfdecAsContext * context, + SwfdecAsObject * thisp, + guint argc, + Swfdec...
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
...fdecAsFunctio } else { n_args = 0; } + SWFDEC_AS_VALUE_SET_UNDEFINED (return_value); /* now do different things depending on if we're a native function or not */ if (function->native) { - SwfdecAsValue retval = { 0, }; if (n_args < function->min_args) { SwfdecAsStack *stack = context->frame->stack; if (n_args == 0) { @@ -139,10 +142,11 @@ swfdec_as_function_call (SwfdecAsFunctio frame = swfdec_as_frame_new_native (thisp); g_assert (function->name); frame->function_name = function->name; - function->native (context, thi...
2007 Apr 04
0
Branch 'as' - 17 commits - configure.ac doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt doc/swfdec.types libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec-gtk.h libswfdec-gtk/swfdec_gtk_loader.c libswfdec-gtk/swfdec_gtk_loader.h
...+34,14 @@ G_BEGIN_DECLS #define SWFDEC_TYPE_AS_ASOBJECT (6) typedef guint8 SwfdecAsType; +typedef struct _SwfdecAsArray SwfdecAsArray; typedef struct _SwfdecAsContext SwfdecAsContext; typedef struct _SwfdecAsFrame SwfdecAsFrame; typedef struct _SwfdecAsObject SwfdecAsObject; typedef struct _SwfdecAsStack SwfdecAsStack; typedef struct _SwfdecAsValue SwfdecAsValue; +/* IMPORTANT: a SwfdecAsValue memset to 0 is a valid undefined value */ struct _SwfdecAsValue { SwfdecAsType type; union { @@ -92,6 +94,37 @@ extern const char *swfdec_as_strings[]; #define SWFDEC_AS_STR_EMPTY (swfdec_as_strin...
2007 Aug 22
0
163 commits - autogen.sh configure.ac doc/swfdec-sections.txt libswfdec-gtk/swfdec_gtk_player.c libswfdec-gtk/swfdec_gtk_player.h libswfdec-gtk/swfdec_gtk_widget.c libswfdec-gtk/swfdec_source.c libswfdec/Makefile.am libswfdec/swfdec_as_array.c
...f --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt index c5f9076..019380c 100644 --- a/doc/swfdec-sections.txt +++ b/doc/swfdec-sections.txt @@ -375,6 +375,7 @@ SwfdecAsFrame swfdec_as_frame_get_next swfdec_as_frame_get_function_name swfdec_as_frame_get_script +swfdec_as_frame_get_this SwfdecAsStackIterator swfdec_as_stack_iterator_init swfdec_as_stack_iterator_init_arguments diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index a9fe372..b7cb037 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -787,3 +787,20 @@ swfdec_as_frame_get_script (S...