Displaying 19 results from an estimated 19 matches for "swfdec_as_frame_find_vari".
Did you mean:
swfdec_as_frame_find_var
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...