search for: swfdecasfunction

Displaying 20 results from an estimated 60 matches for "swfdecasfunction".

2007 May 18
0
Branch 'as' - libswfdec/Makefile.am libswfdec/swfdec_as_context.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_native_function.h
...rt; diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index c6a7c92..dd91fcc 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -27,63 +27,32 @@ #include "swfdec_as_stack.h" #include "swfdec_debug.h" -G_DEFINE_TYPE (SwfdecAsFunction, swfdec_as_function, SWFDEC_TYPE_AS_OBJECT) - -static void -swfdec_as_function_dispose (GObject *object) -{ - SwfdecAsFunction *function = SWFDEC_AS_FUNCTION (object); - - if (function->script) { - swfdec_script_unref (function->script); - function->script = NULL; - } - g_free (f...
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
...ill be this->prototype, but in special cases, this is not true. diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index ef60c0b..c64df5e 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -164,10 +164,10 @@ swfdec_as_function_call (SwfdecAsFunction *function, SwfdecAsObject *thisp, guin if (frame == NULL) return; if (thisp != NULL) { - swfdec_as_super_new (frame, thisp, FALSE); + swfdec_as_super_new (frame, thisp, thisp->prototype); } else { SWFDEC_FIXME ("does the super object really reference the function wh...
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
...- a/doc/swfdec-docs.sgml +++ b/doc/swfdec-docs.sgml @@ -27,5 +27,6 @@ <xi:include href="xml/SwfdecAsContext.xml"/> <xi:include href="xml/SwfdecAsObject.xml"/> <xi:include href="xml/SwfdecAsArray.xml"/> + <xi:include href="xml/SwfdecAsFunction.xml"/> </chapter> </book> diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt index fd2f296..7773b37 100644 --- a/doc/swfdec-sections.txt +++ b/doc/swfdec-sections.txt @@ -296,4 +296,35 @@ SWFDEC_AS_ARRAY_CLASS SWFDEC_AS_ARRAY_GET_CLASS SWFDEC_IS_AS_ARRAY SWFDE...
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
...ot;), + SWFDEC_AS_CONSTANT_STRING ("constructor"), /* add more here */ NULL }; 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 vo...
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
...:36:43 2007 +0200 fix Super to look at the right variables diff --git a/libswfdec/swfdec_as_super.c b/libswfdec/swfdec_as_super.c index 5665e1a..6f5902f 100644 --- a/libswfdec/swfdec_as_super.c +++ b/libswfdec/swfdec_as_super.c @@ -35,20 +35,29 @@ static SwfdecAsFrame * swfdec_as_super_call (SwfdecAsFunction *function) { SwfdecAsSuper *super = SWFDEC_AS_SUPER (function); + SwfdecAsValue val; + SwfdecAsFunction *fun; SwfdecAsFunctionClass *klass; SwfdecAsFrame *frame; - if (super->constructor == NULL) { - SWFDEC_FIXME ("figure out what happens when super doesn't have a cons...
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
...var_object = SWFDEC_AS_OBJECT (frame); frame->argc = n_args; frame->argv = args; diff --git a/libswfdec/swfdec_as_function.h b/libswfdec/swfdec_as_function.h index 951911e..ddc92d9 100644 --- a/libswfdec/swfdec_as_function.h +++ b/libswfdec/swfdec_as_function.h @@ -44,8 +44,7 @@ struct _SwfdecAsFunctionClass { SwfdecAsObjectClass object_class; /* call this function: push a new frame onto the stack */ - void (* call) (SwfdecAsFunction * function, - SwfdecAsObject * thisp); + void (* call) (SwfdecAsFunction * function); }; GType swfdec_as_function_get_type (void); diff...
2007 Sep 10
0
3 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...(un)watch functions diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index 1fbf1d0..a331030 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -113,11 +113,14 @@ struct _SwfdecAsVariable { SwfdecAsValue value; /* value of property */ SwfdecAsFunction * get; /* getter set with swfdec_as_object_add_property */ SwfdecAsFunction * set; /* setter or %NULL */ - SwfdecAsFunction * watch; /* watcher or %NULL */ - SwfdecAsValue * watch_data; /* user data to watcher */ - gint8 watch_recurse; /* times the watch function has been called without...
2007 Aug 17
0
Branch 'vivi' - 9 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_native_function.c
...diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index 3e9b6dd..879ed9d 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -67,40 +67,31 @@ swfdec_as_function_init (SwfdecAsFunctio } /** - * swfdec_as_function_create: - * @context: a #SwfdecAsFunction - * @type: the type of function to create - * @size: size of @type + * swfdec_as_function_set_constructor: + * @fun: a #SwfdecAsFunction * - * Creates a new function. The function will be of @type. It will be added to - * @context and its prototype and constructor object will be set correctly. -...
2007 Jul 26
0
5 commits - doc/Makefile.am doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player_as.c
...e "swfdec_interval.h" +/* FIXME: to avoid duplicate definitions */ +#undef SWFDEC_AS_NATIVE +#define SWFDEC_AS_NATIVE(x, y, func) /*** INTERVALS ***/ @@ -90,29 +95,80 @@ swfdec_player_clearInterval (SwfdecAsCon swfdec_interval_remove (player, id); } +/*** VARIOUS ***/ + +static SwfdecAsFunction * +swfdec_get_asnative (SwfdecAsContext *cx, guint x, guint y) +{ + guint i; + + for (i = 0; native_funcs[i].func != NULL; i++) { + if (native_funcs[i].x == x && native_funcs[i].y == y) { + return swfdec_as_native_function_new (cx, native_funcs[i].name, + native_funcs[i].func, 0...
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
...er.c @@ -29,11 +29,32 @@ #include "swfdec_as_function.h" #include "swfdec_debug.h" -G_DEFINE_TYPE (SwfdecAsSuper, swfdec_as_super, SWFDEC_TYPE_AS_OBJECT) +G_DEFINE_TYPE (SwfdecAsSuper, swfdec_as_super, SWFDEC_TYPE_AS_FUNCTION) + +static SwfdecAsFrame * +swfdec_as_super_call (SwfdecAsFunction *function) +{ + SwfdecAsSuper *super = SWFDEC_AS_SUPER (function); + SwfdecAsFunctionClass *klass; + SwfdecAsFrame *frame; + + if (super->constructor == NULL) { + SWFDEC_FIXME ("figure out what happens when super doesn't have a constructor"); + return NULL; + } + klass...
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
...1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "swfdec_as_function.h" +#include "swfdec_as_context.h" +#include "swfdec_as_frame.h" +#include "swfdec_as_stack.h" +#include "swfdec_debug.h" + +G_DEFINE_TYPE (SwfdecAsFunction, swfdec_as_function, SWFDEC_TYPE_AS_OBJECT) + +static void +swfdec_as_function_dispose (GObject *object) +{ + SwfdecAsFunction *function = SWFDEC_AS_FUNCTION (object); + + if (function->script) { + swfdec_script_unref (function->script); + function->script = NULL; + } + + G_OBJEC...
2007 Oct 23
0
6 commits - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_script_function.c libswfdec/swfdec_flash_security.c
...SwfdecAsObject *object, SwfdecScript *script) g_object_unref (sec); } +void +swfdec_as_object_call_with_security (SwfdecAsObject *object, SwfdecSecurity *sec, + const char *name, guint argc, SwfdecAsValue *argv, SwfdecAsValue *return_value) +{ + static SwfdecAsValue tmp; /* ignored */ + SwfdecAsFunction *fun; + + g_return_if_fail (SWFDEC_IS_AS_OBJECT (object)); + g_return_if_fail (SWFDEC_IS_SECURITY (sec)); + g_return_if_fail (name != NULL); + g_return_if_fail (argc == 0 || argv != NULL); + g_return_if_fail (argc == 0 || argv != NULL); + + if (return_value) + SWFDEC_AS_VALUE_SET_UNDEFINED...
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
...action_trace (SwfdecAsContext *cx /* stack looks like this: [ function, this, arg1, arg2, ... ] */ /* stack must be at least 2 elements big */ static gboolean -swfdec_action_call (SwfdecAsContext *cx, guint n_args) +swfdec_action_call (SwfdecAsContext *cx, guint n_args, gboolean use_super) { SwfdecAsFunction *fun; SwfdecAsObject *thisp; @@ -591,6 +592,13 @@ 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 (u...
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
...s_to_string (cx, fp->sp[-1]); - if (s == NULL) - return JS_FALSE; - if (!JS_ValueToECMAUint32 (cx, fp->sp[-3], &n_args)) - return JS_FALSE; - - if (!JS_ValueToObject (cx, fp->sp[-2], &object)) - return JS_FALSE; - if (object == NULL) + SwfdecAsValue *constructor; + SwfdecAsFunction *fun; + guint n_args; + const char *name; + + swfdec_as_stack_ensure_size (cx->frame->stack, 3); + name = swfdec_as_value_to_string (cx, swfdec_as_stack_pop (cx->frame->stack)); + + constructor = swfdec_as_stack_pop (cx->frame->stack); + n_args = swfdec_as_value_to_integer (...
2007 Nov 15
0
4 commits - libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c test/trace
...nternal.h b/libswfdec/swfdec_as_frame_internal.h index 44a87af..d50a9ce 100644 --- a/libswfdec/swfdec_as_frame_internal.h +++ b/libswfdec/swfdec_as_frame_internal.h @@ -33,7 +33,6 @@ struct _SwfdecAsFrame { SwfdecAsFrame * next; /* next frame (FIXME: keep a list in the context instead?) */ SwfdecAsFunction * function; /* function we're executing or NULL if toplevel */ - gboolean caller; /* this function can be used as arguments.caller */ SwfdecAsObject * thisp; /* this object in current frame or NULL if none */ SwfdecAsObject * super; /* super object in current frame or NULL if none */...
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
...t;</informalexample> + **/ void -swfdec_as_object_call (SwfdecAsObject *object, const char *name, guint argc, SwfdecAsValue *argv) +swfdec_as_object_call (SwfdecAsObject *object, const char *name, guint argc, + SwfdecAsValue *argv, SwfdecAsValue *return_value) { + SwfdecAsValue tmp; + SwfdecAsFunction *fun; + g_return_if_fail (SWFDEC_IS_AS_OBJECT (object)); g_return_if_fail (name != NULL); g_return_if_fail (argc == 0 || argv != NULL); + + if (return_value) + SWFDEC_AS_VALUE_SET_UNDEFINED (return_value); + swfdec_as_object_get (object, name, &tmp); + if (!SWFDEC_AS_VALUE_IS_OBJ...
2007 Nov 14
0
2 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_string.c libswfdec/swfdec_color_as.c libswfdec/swfdec_initialize.as
...t argc, SwfdecAsObject *object_new; SwfdecAsArray *array_new; + if (object == NULL) + return; + length = swfdec_as_array_length (object); if (argc > 0) { @@ -1260,6 +1290,9 @@ swfdec_as_array_sort (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, gint32 options; SwfdecAsFunction *custom_compare_func; + if (object == NULL) + return; + pos = 0; if (argc > 0 && !SWFDEC_AS_VALUE_IS_NUMBER (&argv[0])) { SwfdecAsFunction *fun; @@ -1290,6 +1323,9 @@ swfdec_as_array_sortOn (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, const char **fie...
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
...-defined function have an implicit prototype property diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index 9256b31..c6a7c92 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -100,13 +100,22 @@ swfdec_as_function_do_create (SwfdecAsCo SwfdecAsFunction * swfdec_as_function_new (SwfdecAsScope *scope) { + SwfdecAsValue val; SwfdecAsFunction *fun; + SwfdecAsObject *proto; g_return_val_if_fail (SWFDEC_IS_AS_SCOPE (scope), NULL); fun = swfdec_as_function_do_create (SWFDEC_AS_OBJECT (scope)->context); if (fun == NULL) return...
2008 Jun 02
4
[Bug 16206] New: Charts in Yahoo Finance crash swfdec
http://bugs.freedesktop.org/show_bug.cgi?id=16206 Summary: Charts in Yahoo Finance crash swfdec Product: swfdec Version: git Platform: Other URL: http://finance.yahoo.com/echarts?s=%5EDJI#symbol=%5EDJI; range=1d OS/Version: All Status: NEW Severity: critical Priority: medium
2007 Jul 21
0
12 commits - configure.ac doc/Makefile.am doc/swfdec-sections.txt libswfdec/jpeg libswfdec/swfdec_as_array.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_player.c libswfdec/swfdec_player.h libswfdec/swfdec_player_internal.h
...>context); } } else { var->value = *val; @@ -912,6 +925,43 @@ swfdec_as_object_set_constructor (Swfdec /*** AS CODE ***/ static void +swfdec_as_object_addProperty (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval) +{ + SwfdecAsFunction *get, *set; + SwfdecAsVariable *var; + const char *name; + + SWFDEC_AS_VALUE_SET_BOOLEAN (retval, FALSE); + if (argc < 3) + return; + name = swfdec_as_value_to_string (cx, &argv[0]); + if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[1]) || + !SWFDEC_IS_AS_FUNCTION ((get = (SwfdecAsFu...