search for: swfdec_as_frame_find_vari

Displaying 19 results from an estimated 19 matches for "swfdec_as_frame_find_vari".

2007 May 17
0
Branch 'as' - 8 commits - libswfdec/.gitignore libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_object.h libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie_as.c
...WFDEC_AS_OBJECT (fun), SWFDEC_AS_STR_prototype, &val); fun->scope = scope; return fun; diff-tree ab019a8f3710c9d4304beb07bff3788ad9935e60 (from 551a69d50afe92c6e2736a95280e6e96fd5044e2) Author: Benjamin Otte <otte at gnome.org> Date: Thu May 17 19:29:06 2007 +0200 change swfdec_as_frame_find_variable() return value semantics It used to look up the object that contained the variable. Now it looks up the object in the scope chain that has the variable in its prototype chain. Consider this graphical piece of art (* denotes the object containing the variable, scope chai...
2007 Sep 13
0
5 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_scope.c libswfdec/swfdec_as_scope.h libswfdec/swfdec_as_script_function.c
...th.h | 56 -------- 11 files changed, 207 insertions(+), 479 deletions(-) New commits: diff-tree ef4b8c89c3e50cdd36402301e9aad38270accf24 (from 7abe5c03e87fbfd281426b1cf06e2d4890698338) Author: Benjamin Otte <otte at gnome.org> Date: Thu Sep 13 19:34:54 2007 +0200 replace swfdec_as_frame_find_variable with _get/set_variable Since the setting code works way differet from the getting code, it seemed clever to make them 2 different functions diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c index 035e1fd..733192d 100644 --- a/libswfdec/swfdec_as_context.c...
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
...(cx, (jsid) atom, &obj, &pobj, &prop)) - return JS_FALSE; - if (!prop) - return JS_FALSE; - return OBJ_GET_PROPERTY (cx, obj, (jsid) prop->id, ret); -#endif + SwfdecAsValue val; + SWFDEC_AS_VALUE_SET_STRING (&val, name); + if (cx->frame) { + obj = swfdec_as_frame_find_variable (cx->frame, &val); + if (obj) { + swfdec_as_object_get_variable (obj, &val, ret); + return; + } + } else { + SWFDEC_ERROR ("no frame in eval?"); + } + SWFDEC_AS_VALUE_SET_UNDEFINED (ret); } } @@ -523,21 +525,17 @@ swfdec_as_context_eval_set_pro...
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
...e *frame, SwfdecAsObject *thisp) +{ + g_return_if_fail (SWFDEC_IS_AS_FRAME (frame)); + g_return_if_fail (frame->thisp == NULL); + g_return_if_fail (SWFDEC_IS_AS_OBJECT (thisp)); + + frame->thisp = thisp; + if (frame->var_object == NULL) + frame->var_object = thisp; +} + +/** * swfdec_as_frame_find_variable: * @frame: a #SwfdecAsFrame * @variable: name of the variable to find diff --git a/libswfdec/swfdec_as_frame.h b/libswfdec/swfdec_as_frame.h index 126d410..3cacbb1 100644 --- a/libswfdec/swfdec_as_frame.h +++ b/libswfdec/swfdec_as_frame.h @@ -67,9 +67,11 @@ struct _SwfdecAsFrameClass { G...
2007 Jun 06
0
Branch 'as' - 13 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h 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
...Wed Jun 6 11:53:29 2007 +0200 recode delete handling Delete does not delete from prototypes. diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index de0dbd7..e0f6fe2 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -232,6 +232,43 @@ swfdec_as_frame_find_variable (SwfdecAsF return NULL; } +/* FIXME: merge with find_variable somehow */ +gboolean +swfdec_as_frame_delete_variable (SwfdecAsFrame *frame, const char *variable) +{ + SwfdecAsScope *cur; + guint i; + + g_return_val_if_fail (SWFDEC_IS_AS_FRAME (frame), FALSE); + g_return_val_if_fail (va...
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
...SWFDEC_AS_VALUE_SET_UNDEFINED (&frame->registers[current_reg++]); } } - if (script->flags & SWFDEC_SCRIPT_PRELOAD_ROOT) { + if (script->flags & SWFDEC_SCRIPT_PRELOAD_ROOT && current_reg < script->n_registers) { SwfdecAsObject *obj; obj = swfdec_as_frame_find_variable (frame, SWFDEC_AS_STR__root); @@ -615,10 +653,10 @@ swfdec_as_frame_preload (SwfdecAsFrame * swfdec_as_object_get_variable (obj, SWFDEC_AS_STR__root, &frame->registers[current_reg]); } else { SWFDEC_WARNING ("no root to preload"); + SWFDEC_AS_VALUE_SET_U...
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
...ew_native (SwfdecAsContext * context); -void swfdec_as_frame_return (SwfdecAsFrame * frame, - SwfdecAsValue * return_value); - -void swfdec_as_frame_set_this (SwfdecAsFrame * frame, - SwfdecAsObject * thisp); -void swfdec_as_frame_preload (SwfdecAsFrame * frame); - -SwfdecAsObject *swfdec_as_frame_find_variable (SwfdecAsFrame * frame, - const char * variable); -gboolean swfdec_as_frame_delete_variable (SwfdecAsFrame * frame, - const char * variable); - -void swfdec_as_frame_set_target (SwfdecAsFrame * frame, - SwfdecAsObject * target); -void swfdec_as_frame_check_scope (SwfdecAsF...
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
...e.org> Date: Mon Aug 20 12:34:43 2007 +0200 rework delete so it can return TRUE, FALSE, AND MAYBE diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index 4608b0a..d47f589 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -503,20 +503,21 @@ swfdec_as_frame_find_variable (SwfdecAsF return NULL; } -/* FIXME: merge with find_variable somehow */ -gboolean +SwfdecAsDeleteReturn swfdec_as_frame_delete_variable (SwfdecAsFrame *frame, const char *variable) { SwfdecAsScope *cur; guint i; + SwfdecAsDeleteReturn ret; g_return_val_if_fail (SWFDEC_IS_AS...
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
...strlen (name), 0)) || - !js_FindProperty (cx, (jsid) atom, &obj, &pobj, &prop)) - return JS_FALSE; - if (!pobj) - return JS_TRUE; - return JS_DeleteProperty (cx, pobj, name); + name = swfdec_as_value_to_string (cx, swfdec_as_stack_pop (cx->frame->stack)); + object = swfdec_as_frame_find_variable (cx->frame, name); + if (object) + swfdec_as_object_delete_variable (object, name); } -#endif static void swfdec_action_store_register (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) @@ -2236,10 +2224,8 @@ const SwfdecActionSpec swfdec_as_actions [SWFDEC_AS_ACT...
2007 Sep 06
0
3 commits - libswfdec/swfdec_as_date.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite_movie.c
...x, swfdec_as_stack_peek (cx, 1)); - swfdec_as_context_eval (cx, NULL, s, swfdec_as_stack_peek (cx, 1)); + val = swfdec_as_stack_peek (cx, 1); + s = swfdec_as_value_to_string (cx, val); + if (swfdec_action_get_movie_by_path (cx, s, &object, &s)) { + if (object == NULL) + object = swfdec_as_frame_find_variable (cx->frame, s); + } else { + object = NULL; + } + if (object != NULL) { + if (s) { + swfdec_as_object_get_variable (object, swfdec_as_context_get_string (cx, s), val); + } else { + SWFDEC_AS_VALUE_SET_OBJECT (val, object); + } + } else { + SWFDEC_AS_VALUE_SET_...
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
...ct_mark (frame->var_object); + if (frame->target) + swfdec_as_object_mark (frame->target); for (i = 0; i < frame->n_registers; i++) { swfdec_as_value_mark (&frame->registers[i]); } @@ -143,24 +145,54 @@ swfdec_as_frame_new_native (SwfdecAsObje SwfdecAsObject * swfdec_as_frame_find_variable (SwfdecAsFrame *frame, const SwfdecAsValue *variable) { - SwfdecAsObject *ret = NULL; + SwfdecAsObject *cur, *ret = NULL; guint i; g_return_val_if_fail (SWFDEC_IS_AS_FRAME (frame), NULL); g_return_val_if_fail (SWFDEC_IS_AS_VALUE (variable), NULL); + cur = SWFDEC_AS_OBJECT (fram...
2007 Jul 12
0
Branch 'as' - 7 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_with.c libswfdec/swfdec_sprite_movie.c test/trace
...**/ diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c index 3f88deb..0c65e72 100644 --- a/libswfdec/swfdec_as_interpret.c +++ b/libswfdec/swfdec_as_interpret.c @@ -611,8 +611,9 @@ swfdec_action_call_function (SwfdecAsCon fun = swfdec_as_stack_peek (cx, 1); obj = swfdec_as_frame_find_variable (frame, name); if (obj) { - SWFDEC_AS_VALUE_SET_OBJECT (thisp, obj); swfdec_as_object_get_variable (obj, name, fun); + obj = swfdec_as_object_resolve (obj); + SWFDEC_AS_VALUE_SET_OBJECT (thisp, obj); } else { SWFDEC_AS_VALUE_SET_NULL (thisp); SWFDEC_AS_VALUE_SET_UN...
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
...sp, frame->argc, frame->argv, frame->return_value); } swfdec_as_context_return (context); diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index 75e0534..2982e3c 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -228,11 +228,13 @@ swfdec_as_frame_find_variable (SwfdecAsF ret = swfdec_as_object_find_variable (frame->target, variable); if (ret) return frame->target; - } else { + } else if (frame->thisp) { /* The default target is the original object that called into us */ ret = swfdec_as_object_find_variable (SWFDE...
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
...Otte <otte at gnome.org> Date: Tue Jun 26 15:10:35 2007 +0200 simplify old target handling code diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index e503c7c..c8013a4 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -214,15 +214,9 @@ swfdec_as_frame_find_variable (SwfdecAsF } g_assert (SWFDEC_IS_AS_FRAME (cur)); /* we've walked the scope chain down. Now look in the special objects. */ - /* 1) the target set via SetTarget */ - if (frame->target) { - if (swfdec_as_object_get_variable (frame->target, variable, &val)) - retu...
2007 May 31
0
Branch 'as' - 8 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_string.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_as_types.c test/trace
...al properties automatically diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c index 672567a..2b5cefe 100644 --- a/libswfdec/swfdec_as_context.c +++ b/libswfdec/swfdec_as_context.c @@ -626,7 +626,7 @@ swfdec_as_context_eval_set_property (Swf return; } obj = swfdec_as_frame_find_variable (cx->frame, name); - if (obj == NULL) + if (obj == NULL || obj == cx->global) obj = cx->frame->var_object; } swfdec_as_object_set_variable (obj, name, ret); diff-tree 58d960c87799a285ee740b474ab763dcc024db18 (from debd20cff40ff22082d31f715bc04a39dd0c3a27) Author:...
2007 Jun 05
0
Branch 'as' - 8 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_number.c libswfdec/swfdec_as_scope.h
...frame->pc = script->buffer->data; frame->stack = stack; - frame->scope = NULL; + frame->scope = SWFDEC_AS_SCOPE (frame); if (frame->next) frame->var_object = frame->next->var_object; frame->n_registers = script->n_registers; @@ -202,7 +202,7 @@ swfdec_as_frame_find_variable (SwfdecAsF g_return_val_if_fail (SWFDEC_IS_AS_FRAME (frame), NULL); g_return_val_if_fail (variable != NULL, NULL); - cur = SWFDEC_AS_SCOPE (frame); + cur = frame->scope; for (i = 0; i < 256; i++) { ret = swfdec_as_object_find_variable (SWFDEC_AS_OBJECT (cur), variable);...
2007 Jul 04
0
Branch 'as' - 25 commits - libswfdec/Makefile.am libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_boolean.h 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
...;stack, 2); n_args = swfdec_as_value_to_integer (cx, swfdec_as_stack_peek (frame->stack, 2)); name = swfdec_as_value_to_string (cx, swfdec_as_stack_peek (frame->stack, 1)); + thisp = swfdec_as_stack_peek (frame->stack, 2); + fun = swfdec_as_stack_peek (frame->stack, 1); obj = swfdec_as_frame_find_variable (frame, name); if (obj) { - SWFDEC_AS_VALUE_SET_OBJECT (swfdec_as_stack_peek (frame->stack, 2), obj); - swfdec_as_object_get_variable (obj, name, swfdec_as_stack_peek (frame->stack, 1)); + SWFDEC_AS_VALUE_SET_OBJECT (thisp, obj); + swfdec_as_object_get_variable (obj, name,...
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
...e.org> Date: Mon Aug 20 12:34:43 2007 +0200 rework delete so it can return TRUE, FALSE, AND MAYBE diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index 4608b0a..d47f589 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -503,20 +503,21 @@ swfdec_as_frame_find_variable (SwfdecAsF return NULL; } -/* FIXME: merge with find_variable somehow */ -gboolean +SwfdecAsDeleteReturn swfdec_as_frame_delete_variable (SwfdecAsFrame *frame, const char *variable) { SwfdecAsScope *cur; guint i; + SwfdecAsDeleteReturn ret; g_return_val_if_fail (SWFDEC_IS_AS...
2007 Oct 12
0
Changes to 'refs/tags/0.5.3'
...andom Object.watch() test rewrite scope chain handling Merge branch 'master' of ssh://company at git.freedesktop.org/git/swfdec/swfdec Merge branch 'master' of ssh://company at git.freedesktop.org/git/swfdec/swfdec properly exit when pc == endpc replace swfdec_as_frame_find_variable with _get/set_variable it's better to initialize correctly than to delete later ;) add tests from http://www.timotheegroleau.com/Flash/articles/scope_chain.htm scale by a double, not an int use g_ascii_strcasecmp here fix Function.apply document that the...