Displaying 20 results from an estimated 99 matches for "swfdec_as_value_get_object".
2007 Oct 25
0
6 commits - libswfdec/swfdec_as_interpret.c test/trace
...ex b18ddbf..5224538 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2239,19 +2239,18 @@ swfdec_action_cast (SwfdecAsContext *cx, guint action, const guint8 *data,
val = swfdec_as_stack_pop (cx);
if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
- constructor = SWFDEC_AS_VALUE_GET_OBJECT (val);
+ object = SWFDEC_AS_VALUE_GET_OBJECT (val);
} else {
- constructor = NULL;
+ object = NULL;
}
-
+
val = swfdec_as_stack_pop (cx);
if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
- object = SWFDEC_AS_VALUE_GET_OBJECT (val);
+ constructor = SWFDEC_AS_VALUE_GET_OBJECT (val);...
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
...= SWFDEC_AS_VALUE_GET_STRING (&tmp);
if (s == SWFDEC_AS_STR_EMPTY)
return NAN;
d = g_ascii_strtod (s, &end);
@@ -257,15 +262,6 @@ swfdec_as_value_to_number (SwfdecAsConte
return NAN;
}
case SWFDEC_AS_TYPE_OBJECT:
- {
- SwfdecAsValue ret;
- swfdec_as_object_call (SWFDEC_AS_VALUE_GET_OBJECT (value), SWFDEC_AS_STR_valueOf,
- 0, NULL, &ret);
- if (SWFDEC_AS_VALUE_IS_OBJECT (&ret))
- return NAN;
- else
- return swfdec_as_value_to_number (context, &ret);
- }
default:
g_assert_not_reached ();
return NAN;
@@ -359,3 +355,27 @@ swfdec_as_value_to_bo...
2007 Jun 27
0
Branch 'as' - 3 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_js_video.c libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_video_movie_as.c libswfdec/swfdec_video_movie.c
...me->stack);
n_args = swfdec_as_value_to_integer (cx, swfdec_as_stack_peek (cx->frame->stack, 1));
n_args = MIN (swfdec_as_stack_get_size (cx->frame->stack) - 1, n_args);
- if (!SWFDEC_AS_VALUE_IS_OBJECT (constructor) ||
- !SWFDEC_IS_AS_FUNCTION (fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (constructor))) {
- SWFDEC_WARNING ("%s is not a constructor", name);
- goto fail;
- }
if (name != SWFDEC_AS_STR_EMPTY) {
- if (SWFDEC_AS_VALUE_IS_OBJECT (constructor)) {
- swfdec_as_object_get_variable (SWFDEC_AS_VALUE_GET_OBJECT (constructor),
- name, constructor);
+...
2007 May 29
0
Branch 'as' - 8 commits - libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_math.c libswfdec/swfdec_as_math.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_as_types.c
...nction is called. If the result of that function is still
+ * an object, it is returned nonetheless.
**/
void
swfdec_as_value_to_primitive (SwfdecAsValue *value)
@@ -373,9 +374,6 @@ swfdec_as_value_to_primitive (SwfdecAsVa
if (SWFDEC_AS_VALUE_IS_OBJECT (value)) {
swfdec_as_object_call (SWFDEC_AS_VALUE_GET_OBJECT (value), SWFDEC_AS_STR_valueOf,
0, NULL, value);
- if (SWFDEC_AS_VALUE_IS_OBJECT (value)) {
- SWFDEC_AS_VALUE_SET_UNDEFINED (value);
- }
}
}
diff-tree 7a616f11092554851aede853537d78a77374826c (from b1af12501a718c910eb88c7052cb500058c2269c)
Author: Benjamin Otte <otte at gnome....
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
...return JS_DeleteProperty (cx, JSVAL_TO_OBJECT (cx->fp->sp[0]), name);
+ name = swfdec_as_value_to_string (cx, swfdec_as_stack_pop (cx->frame->stack));
+ val = swfdec_as_stack_pop (cx->frame->stack);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (val))
+ swfdec_as_object_delete_variable (SWFDEC_AS_VALUE_GET_OBJECT (val), name);
}
static void
swfdec_action_delete2 (SwfdecAsContext *cx, guint action, const guint8 *data, guint len)
{
const char *name;
- JSObject *obj, *pobj;
- JSProperty *prop;
- JSAtom *atom;
+ SwfdecAsObject *object;
- cx->fp->sp -= 1;
- name = swfdec_js_to_string (cx...
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
...VALUE_SET_UNDEFINED (swfdec_as_stack_peek (frame->stack, 1));
+ SWFDEC_AS_VALUE_SET_NULL (thisp);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (fun);
}
- if (!swfdec_action_call (cx, n_args)) {
+ if (!swfdec_action_call (cx, n_args, SWFDEC_AS_VALUE_IS_OBJECT (fun) &&
+ SWFDEC_IS_AS_SUPER (SWFDEC_AS_VALUE_GET_OBJECT (fun)))) {
SWFDEC_ERROR ("no function named %s", name);
}
}
@@ -634,16 +646,19 @@ swfdec_action_call_method (SwfdecAsConte
SwfdecAsObject *obj;
guint n_args;
const char *name = NULL;
+ gboolean use_super = FALSE;
swfdec_as_stack_ensure_size (frame->stack, 3);...
2007 Oct 26
0
2 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.h test/trace
...fdecAsContext *cx, guint action,
+ const guint8 *data, guint len)
+{
+ SwfdecAsValue *val, *argv;
+ SwfdecAsObject *object, *proto, *interface;
+ int argc, i;
+
+ swfdec_as_stack_ensure_size (cx, 2);
+
+ val = swfdec_as_stack_pop (cx);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
+ object = SWFDEC_AS_VALUE_GET_OBJECT (val);
+ swfdec_as_object_get_variable (object, SWFDEC_AS_STR_prototype, val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
+ proto = SWFDEC_AS_VALUE_GET_OBJECT (val);
+ } else {
+ proto = NULL;
+ }
+ } else {
+ object = NULL;
+ proto = NULL;
+ }
+
+ val = swfdec_as_stack...
2007 Jul 27
0
libswfdec/swfdec_asbroadcaster.c
...ec_as_strings.h"
#include "swfdec_debug.h"
@@ -47,10 +46,10 @@ broadcastMessage (SwfdecAsContext *cx, S
argc--;
swfdec_as_object_get_variable (object, SWFDEC_AS_STR__listeners, &val);
- if (!SWFDEC_AS_VALUE_IS_OBJECT (&val) ||
- !SWFDEC_IS_AS_ARRAY (listeners = SWFDEC_AS_VALUE_GET_OBJECT (&val)))
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
return;
+ listeners = SWFDEC_AS_VALUE_GET_OBJECT (&val);
swfdec_as_object_get_variable (listeners, SWFDEC_AS_STR_length, &val);
length = swfdec_as_value_to_integer (cx, &val);
2007 Jun 02
2
small bug in swfdec_mouse_as.c
...c_mouse_addListener (SwfdecAsObject *object,
guint argc, SwfdecAsValue *arg
{
SwfdecPlayer *player = SWFDEC_PLAYER (object->context);
- if (!SWFDEC_IS_AS_OBJECT (&argv[0]))
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[0]))
return;
swfdec_listener_add (player->mouse_listener,
SWFDEC_AS_VALUE_GET_OBJECT (&argv[0]));
}
--
Duy
2007 Sep 08
0
9 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c libswfdec/swfdec_player.c libswfdec/swfdec_video_movie_as.c
...get_by_name (movie, name);
+ if (ret)
+ return ret;
- if (!swfdec_as_object_get_variable (movie, name, &val))
++ if (!swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (movie), name, &val))
+ return NULL;
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return NULL;
- ret = SWFDEC_AS_VALUE_GET_OBJECT (&val);
++ ret = (SwfdecMovie *) SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ if (!SWFDEC_IS_MOVIE (ret))
+ return NULL;
+ return ret;
+}
+
/**
* swfdec_action_get_movie_by_path:
* @cx: a #SwfdecAsContext
@@@ -445,9 -426,10 +445,26 @@@
swfdec_action_get_movie_by_path (SwfdecAsC...
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
...ET_OBJECT (&cur, obj); /* FIXME: can be NULL here */
for (i = 0; varlist[i] != NULL; i++) {
const char *dot = swfdec_as_context_get_string (cx, varlist[i]);
- if (!SWFDEC_AS_VALUE_IS_OBJECT (&cur)) {
- SWFDEC_AS_VALUE_SET_UNDEFINED (&cur);
- break;
- }
- obj = SWFDEC_AS_VALUE_GET_OBJECT (&cur);
if (varlist[i+1] != NULL) {
swfdec_as_context_eval_get_property (cx, obj, dot, &cur);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&cur)) {
+ SWFDEC_AS_VALUE_SET_UNDEFINED (&cur);
+ break;
+ }
+ obj = SWFDEC_AS_VALUE_GET_OBJECT (&cur);
} else {...
2007 Sep 10
0
3 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...ED (&val);
- swfdec_as_object_set_variable (object, name, &val);
- if (!(var = swfdec_as_object_hash_lookup (object, name)))
- return;
- }
-
- if (var->get != NULL)
- return;
-
if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[1]))
return;
if (!SWFDEC_IS_AS_FUNCTION (SWFDEC_AS_VALUE_GET_OBJECT (&argv[1])))
return;
- var->watch = SWFDEC_AS_FUNCTION (SWFDEC_AS_VALUE_GET_OBJECT (&argv[1]));
+ if (object->watches == NULL) {
+ object->watches = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ NULL, (GDestroyNotify) swfdec_as_watch_unref);
+ watch = NULL...
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
...super = SWFDEC_AS_SUPER (ret);
+ if (frame->thisp) {
+ SwfdecAsValue val;
+ super->object = frame->thisp;
+ swfdec_as_object_get_variable (frame->thisp, SWFDEC_AS_STR_constructor, &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+ SwfdecAsObject *constructor = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ swfdec_as_object_get_variable (constructor, SWFDEC_AS_STR___constructor__, &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+ super->constructor = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ if (!SWFDEC_IS_AS_FUNCTION (super->constructor))
+...
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
...roperty %u, not allowed", id);
+ goto out;
+ }
+ val = swfdec_as_stack_peek (cx->frame->stack, 1);
+ swfdec_as_interpret_eval (cx, NULL, val);
+ if (SWFDEC_AS_VALUE_IS_UNDEFINED (val)) {
+ obj = cx->frame->scope;
+ } else if (SWFDEC_AS_VALUE_IS_OBJECT (val)) {
+ obj = SWFDEC_AS_VALUE_GET_OBJECT (val);
+ } else {
+ SWFDEC_WARNING ("not an object, can't GetProperty");
+ goto out;
+ }
+ swfdec_as_object_get (obj, SWFDEC_AS_STR_CONSTANT (CONSTANT_INDEX + id),
+ swfdec_as_stack_peek (cx->frame->stack, 1));
+ return;
+
+out:
+ SWFDEC_AS_VALUE_SET_UNDEFINED (s...
2007 Sep 02
0
3 commits - libswfdec/swfdec_as_number.c libswfdec/swfdec_internal.h libswfdec/swfdec_player_as.c libswfdec/swfdec_player.c test/trace
...SWFDEC_AS_STR_ASconstructor,
- 0, swfdec_player_ASconstructor, 2);
-
- // remove __proto__ and constructor from ASnative and ASconstructor
-
- swfdec_as_object_get_variable (context->global, SWFDEC_AS_STR_ASnative, &val);
- g_assert (SWFDEC_AS_VALUE_IS_OBJECT (&val));
- object = SWFDEC_AS_VALUE_GET_OBJECT (&val);
- swfdec_as_object_unset_variable_flags (object, SWFDEC_AS_STR___proto__,
- SWFDEC_AS_VARIABLE_PERMANENT);
- swfdec_as_object_delete_variable (object, SWFDEC_AS_STR___proto__);
- swfdec_as_object_unset_variable_flags (object, SWFDEC_AS_STR_constructor,
- SWFDEC_AS_VARIABLE_...
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
...RING ("valueOf"),
/* add more here */
NULL
};
@@ -204,8 +205,15 @@ swfdec_as_value_to_number (SwfdecAsConte
return NAN;
}
case SWFDEC_TYPE_AS_ASOBJECT:
- SWFDEC_ERROR ("FIXME");
- return NAN;
+ {
+ SwfdecAsValue ret;
+ swfdec_as_object_call (SWFDEC_AS_VALUE_GET_OBJECT (value), SWFDEC_AS_STR_VALUEOF,
+ 0, NULL, &ret);
+ if (SWFDEC_AS_VALUE_IS_NUMBER (&ret))
+ return SWFDEC_AS_VALUE_GET_NUMBER (&ret);
+ else
+ return NAN;
+ }
default:
g_assert_not_reached ();
return NAN;
diff --git a/libswfdec/swfdec_as_types.h b/libswfd...
2007 Aug 17
0
2 commits - libswfdec/swfdec_as_array.c test/trace
...ew (cx);
array_new = SWFDEC_AS_ARRAY (object_new);
- swfdec_as_array_append_array (array_new, SWFDEC_AS_ARRAY (object));
+ swfdec_as_array_append_array (array_new, object);
for (j = 0; j < argc; j++) {
if (SWFDEC_AS_VALUE_IS_OBJECT (&argv[j]) &&
SWFDEC_IS_AS_ARRAY (SWFDEC_AS_VALUE_GET_OBJECT (&argv[j])))
{
swfdec_as_array_append_array (array_new,
- SWFDEC_AS_ARRAY (SWFDEC_AS_VALUE_GET_OBJECT (&argv[j])));
+ SWFDEC_AS_VALUE_GET_OBJECT (&argv[j]));
}
else
{
- var = swfdec_as_double_to_string (object->context, swfdec_as_array_get_length (...
2007 Jun 28
0
Branch 'as' - 2 commits - doc/swfdec-sections.txt libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
...fdec_as_value_to_integer
+SWFDEC_AS_VALUE_SET_BOOLEAN
+SWFDEC_AS_VALUE_GET_NUMBER
swfdec_as_value_to_number
+swfdec_as_value_to_integer
+SWFDEC_AS_VALUE_SET_INT
+SWFDEC_AS_VALUE_SET_NUMBER
+SWFDEC_AS_VALUE_GET_STRING
+swfdec_as_value_to_string
+SWFDEC_AS_VALUE_SET_STRING
+SWFDEC_AS_VALUE_SET_NULL
+SWFDEC_AS_VALUE_GET_OBJECT
swfdec_as_value_to_object
+SWFDEC_AS_VALUE_SET_OBJECT
swfdec_as_value_to_primitive
-swfdec_as_value_to_string
+swfdec_as_double_to_string
+swfdec_as_str_concat
+<SUBSECTION Standard>
+SWFDEC_IS_AS_VALUE
+SWFDEC_AS_VALUE_IS_UNDEFINED
+SWFDEC_AS_VALUE_IS_BOOLEAN
+SWFDEC_AS_VALUE_IS_NUMBER
+SW...
2007 Nov 08
0
configure.ac libswfdec-gtk/swfdec_gtk_widget.c libswfdec-gtk/swfdec_playback_alsa.c libswfdec/swfdec_as_date.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_types.c libswfdec/swfdec_audio_flv.c libswfdec/swfdec_audio_flv.h
..._interpret.c b/libswfdec/swfdec_as_interpret.c
index 6641d72..2cac041 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -1543,6 +1543,7 @@ swfdec_action_strict_equals (SwfdecAsContext *cx, guint action, const guint8 *da
case SWFDEC_AS_TYPE_OBJECT:
cond = SWFDEC_AS_VALUE_GET_OBJECT (rval) == SWFDEC_AS_VALUE_GET_OBJECT (lval);
break;
+ case SWFDEC_AS_TYPE_INT:
default:
g_assert_not_reached ();
cond = FALSE;
@@ -2132,6 +2133,7 @@ swfdec_action_type_of (SwfdecAsContext *cx, guint action, const guint8 *data, gu
}
}
break;
+ case SWFDEC_AS_TYPE...
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
...per->object = frame->thisp;
- swfdec_as_object_get_variable (frame->thisp, SWFDEC_AS_STR_constructor, &val);
+ swfdec_as_object_get_variable (frame->thisp, SWFDEC_AS_STR___proto__, &val);
if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
- SwfdecAsObject *constructor = SWFDEC_AS_VALUE_GET_OBJECT (&val);
- swfdec_as_object_get_variable (constructor, SWFDEC_AS_STR___constructor__, &val);
+ SwfdecAsObject *proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ swfdec_as_object_get_variable (proto, SWFDEC_AS_STR___constructor__, &val);
if (SWFDEC_AS_VALUE_IS_OBJECT...