Displaying 20 results from an estimated 47 matches for "swfdec_is_as_context".
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
...bug.h"
+#include "swfdec_script.h"
/*** GTK_DOC ***/
@@ -67,7 +69,7 @@ swfdec_as_context_abort (SwfdecAsContext
gboolean
swfdec_as_context_use_mem (SwfdecAsContext *context, gsize len)
{
- g_return_val_if_fail (SWFDEC_AS_IS_CONTEXT (context), FALSE);
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), FALSE);
g_return_val_if_fail (len > 0, FALSE);
context->memory += len;
@@ -77,7 +79,7 @@ swfdec_as_context_use_mem (SwfdecAsConte
void
swfdec_as_context_unuse_mem (SwfdecAsContext *context, gsize len)
{
- g_return_if_fail (SWFDEC_AS_IS_CONTEXT (context));
+ g_return_if...
2007 Jun 29
0
Branch 'as' - 3 commits - doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h
..._context_return
+swfdec_as_context_run
+swfdec_as_context_startup
+swfdec_as_context_trace
+swfdec_as_context_unuse_mem
+swfdec_as_context_use_mem
+<SUBSECTION Standard>
+swfdec_as_context_get_type
+SwfdecAsContextClass
+SWFDEC_AS_CONTEXT
+SWFDEC_AS_CONTEXT_CLASS
+SWFDEC_AS_CONTEXT_GET_CLASS
+SWFDEC_IS_AS_CONTEXT
+SWFDEC_IS_AS_CONTEXT_CLASS
+SWFDEC_TYPE_AS_CONTEXT
+</SECTION>
+
diff-tree bc23ec80d8afa3d49618a6b180ace50f7c7b19f3 (from 677831ce294814177191a5950e5320efb73d6e3d)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jun 29 02:00:34 2007 +0200
add lots of documentation
diff --gi...
2007 Oct 26
0
8 commits - doc/swfdec-sections.txt libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_interpret.c test/trace
...t;exception_value);
swfdec_as_object_mark (context->Function);
swfdec_as_object_mark (context->Function_prototype);
swfdec_as_object_mark (context->Object);
@@ -685,10 +685,10 @@ swfdec_as_context_throw (SwfdecAsContext *context, const SwfdecAsValue *value)
{
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
g_return_if_fail (SWFDEC_IS_AS_VALUE (value));
- g_return_if_fail (!context->throwing);
+ g_return_if_fail (!context->exception);
- context->throwing = TRUE;
- context->throw_value = *value;
+ context->exception = TRUE;
+ context->exception_value = *value;...
2007 Jun 17
0
Branch 'as' - 4 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_player.c
...fdec_as_context_use_mem (SwfdecAsConte
g_return_val_if_fail (bytes > 0, FALSE);
context->memory += bytes;
+ context->memory_since_gc += bytes;
return TRUE;
}
@@ -244,15 +245,33 @@ swfdec_as_context_gc (SwfdecAsContext *c
SwfdecAsContextClass *klass;
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
-
+ g_return_if_fail (context->frame == NULL);
/* no GC during setup */
- if (context->state == SWFDEC_AS_CONTEXT_NEW)
- return;
+ g_return_if_fail (context->state != SWFDEC_AS_CONTEXT_NEW);
+
SWFDEC_INFO ("invoking the garbage collector");
+ g_print (&qu...
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
...s_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 = swfdec_as_stack_new (context, 100); /* FIXME: invent better numbers here */
if (!stack)
return NULL;
@@ -130,10 +127,10 @@ swfdec_as_frame_new (SwfdecAsObject *thi
frame->p...
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
...this state when unlocking the player
diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c
index 1eb5785..34dd33b 100644
--- a/libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -381,7 +381,7 @@ swfdec_as_context_gc (SwfdecAsContext *c
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
g_return_if_fail (context->frame == NULL);
- g_return_if_fail (context->state != SWFDEC_AS_CONTEXT_NEW);
+ g_return_if_fail (context->state == SWFDEC_AS_CONTEXT_RUNNING);
if (context->state == SWFDEC_AS_CONTEXT_ABORTED)
return;
@@ -412,8 +412,7 @@ void
swfdec...
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
...ex 07aa538..2004e71 100644
--- a/libswfdec/swfdec_as_types.c
+++ b/libswfdec/swfdec_as_types.c
@@ -230,24 +230,29 @@ swfdec_as_value_to_printable (SwfdecAsCo
double
swfdec_as_value_to_number (SwfdecAsContext *context, const SwfdecAsValue *value)
{
+ SwfdecAsValue tmp;
+
g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), 0.0);
g_return_val_if_fail (SWFDEC_IS_AS_VALUE (value), 0.0);
- switch (value->type) {
+ tmp = *value;
+ swfdec_as_value_to_primitive (&tmp);
+
+ switch (tmp.type) {
case SWFDEC_AS_TYPE_UNDEFINED:
case SWFDEC_AS_TYPE_NULL:
return (context->version >...
2007 Apr 11
0
Branch 'as' - 4 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
...c_as_types.c
index 2446681..ee8c403 100644
--- a/libswfdec/swfdec_as_types.c
+++ b/libswfdec/swfdec_as_types.c
@@ -227,6 +227,9 @@ swfdec_as_value_to_integer (SwfdecAsCont
SwfdecAsObject *
swfdec_as_value_to_object (SwfdecAsContext *context, const SwfdecAsValue *value)
{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+ g_return_val_if_fail (SWFDEC_IS_AS_VALUE (value), NULL);
+
switch (value->type) {
case SWFDEC_TYPE_AS_UNDEFINED:
case SWFDEC_TYPE_AS_NULL:
@@ -244,3 +247,46 @@ swfdec_as_value_to_object (SwfdecAsConte
}
}
+/**
+ * swfdec_as_value_to_boolean:
+ * @context:...
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
...d >= 0 && spec->remove >= 0) ? stack->cur + spec->add - spec->remove : NULL;
#endif
@@ -393,7 +397,23 @@ start:
}
}
-internal_error:
+error:
return;
}
+void
+swfdec_as_context_return (SwfdecAsContext *context, SwfdecAsValue *retval)
+{
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
+ g_return_if_fail (context->frame != NULL);
+ g_return_if_fail (retval == NULL || SWFDEC_IS_AS_VALUE (retval));
+
+ context->frame = context->frame->next;
+ swfdec_as_stack_ensure_left (context->frame->stack, 1);
+ if (retval) {
+ swfdec_as_stack_push (context...
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
...fdecAsFunction *
-swfdec_as_function_do_create (SwfdecAsContext *context)
+swfdec_as_function_create (SwfdecAsContext *context, GType type, guint size)
{
SwfdecAsValue val;
SwfdecAsObject *fun;
- if (!swfdec_as_context_use_mem (context, sizeof (SwfdecAsFunction)))
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+ g_return_val_if_fail (g_type_is_a (type, SWFDEC_TYPE_AS_FUNCTION), NULL);
+ g_return_val_if_fail (size >= sizeof (SwfdecAsFunction), NULL);
+
+ if (!swfdec_as_context_use_mem (context, size))
return NULL;
- fun = g_object_new (SWFDEC_TYPE_AS_FUNCTION, NULL);
- swfde...
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
...SwfdecAsValue *ret)
+{
+ SwfdecAsBoolean *b = SWFDEC_AS_BOOLEAN (object);
+
+ SWFDEC_AS_VALUE_SET_BOOLEAN (ret, b->boolean);
+}
+
+void
+swfdec_as_boolean_init_context (SwfdecAsContext *context, guint version)
+{
+ SwfdecAsObject *boolean, *proto;
+ SwfdecAsValue val;
+
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
+
+ boolean = SWFDEC_AS_OBJECT (swfdec_as_object_add_function (context->global,
+ SWFDEC_AS_STR_Boolean, SWFDEC_TYPE_AS_BOOLEAN, swfdec_as_boolean_construct, 0));
+ if (!boolean)
+ return;
+ swfdec_as_native_function_set_construct_type (SWFDEC_AS_NATIVE_FUNCTION (boolean),...
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
...fdec_as_context.c b/libswfdec/swfdec_as_context.c
index 5b8079b..03b0c5e 100644
--- a/libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -586,7 +586,7 @@ swfdec_as_context_run (SwfdecAsContext *
gboolean check_scope; /* some opcodes avoid a scope check */
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
- if (context->frame == NULL)
+ if (context->frame == NULL || context->state == SWFDEC_AS_CONTEXT_ABORTED)
return;
klass = SWFDEC_AS_CONTEXT_GET_CLASS (context);
@@ -627,7 +627,7 @@ start:
pc = frame->pc;
check_scope = TRUE;
- while (TRUE) {
+ while (co...
2007 Sep 04
0
5 commits - doc/Makefile.am doc/swfdec-sections.txt libswfdec/swfdec_as_array.c libswfdec/swfdec_as_boolean.c libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_native_function.h
...conversion succeeded, %FALSE otherwise
+ **/
+gboolean
+swfdec_as_native_function_check (SwfdecAsContext *cx, SwfdecAsObject *object,
+ GType type, gpointer *result, guint argc, SwfdecAsValue *argv,
+ const char *args, ...)
+{
+ gboolean ret;
+ va_list varargs;
+
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (cx), FALSE);
+ g_return_val_if_fail (type == 0 || result != NULL, FALSE);
+
+ va_start (varargs, args);
+ ret = swfdec_as_native_function_checkv (cx, object, type, result, argc, argv, args, varargs);
+ va_end (varargs);
+ return ret;
+}
+
+/**
+ * swfdec_as_native_function_checkv:
+ * @cx: a...
2007 May 20
0
Branch 'as' - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_player.c
...d inside this context. By default,
+ * this is the same as g_get_current_time(), but it may be overwriten to allow
+ * things such as slower or faster playback.
+ **/
+void
+swfdec_as_context_get_time (SwfdecAsContext *context, GTimeVal *tv)
+{
+ SwfdecAsContextClass *klass;
+
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
+ g_return_if_fail (tv != NULL);
+
+ klass = SWFDEC_AS_CONTEXT_GET_CLASS (context);
+ if (klass->get_time)
+ klass->get_time (context, tv);
+ else
+ g_get_current_time (tv);
+}
+
void
swfdec_as_context_run (SwfdecAsContext *context)
{
diff --git a/libswfdec/swfdec_as_...
2007 Oct 22
0
2 commits - doc/swfdec-sections.txt libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h
...e excessive memory usage, infinite loops or other problems.
+ * In that case the script engine aborts for safety reasons.
+ *
+ * Returns: %TRUE if the player is aborted, %FALSE if it runs normally.
+ **/
+gboolean
+swfdec_as_context_is_aborted (SwfdecAsContext *context)
+{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), TRUE);
+
+ return context->state == SWFDEC_AS_CONTEXT_ABORTED;
+}
+
diff --git a/libswfdec/swfdec_as_context.h b/libswfdec/swfdec_as_context.h
index 73feae4..8540cd8 100644
--- a/libswfdec/swfdec_as_context.h
+++ b/libswfdec/swfdec_as_context.h
@@ -97,6 +97,7 @@ GType swfdec_as_cont...
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
...**/
-SwfdecAsFunction *
-swfdec_as_function_create (SwfdecAsContext *context, GType type, guint size)
+void
+swfdec_as_function_set_constructor (SwfdecAsFunction *fun)
{
+ SwfdecAsContext *context;
+ SwfdecAsObject *object;
SwfdecAsValue val;
- SwfdecAsObject *fun;
- g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
- g_return_val_if_fail (g_type_is_a (type, SWFDEC_TYPE_AS_FUNCTION), NULL);
- g_return_val_if_fail (size >= sizeof (SwfdecAsFunction), NULL);
-
- if (!swfdec_as_context_use_mem (context, size))
- return NULL;
- fun = g_object_new (type, NULL);
- swfdec_as_object_add (SW...
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
...its *bits, SwfdecAmfType expected_type,
- jsval *rval)
+swfdec_amf_parse_one (SwfdecAsContext *context, SwfdecBits *bits,
+ SwfdecAmfType expected_type, SwfdecAsValue *rval)
{
SwfdecAmfParseFunc func;
guint type;
- g_return_val_if_fail (cx != NULL, FALSE);
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), 0);
g_return_val_if_fail (bits != NULL, FALSE);
g_return_val_if_fail (rval != NULL, FALSE);
g_return_val_if_fail (expected_type < SWFDEC_AMF_N_TYPES, FALSE);
@@ -205,23 +202,24 @@ swfdec_amf_parse_one (JSContext *cx, Swf
SWFDEC_ERROR ("no parse func for AMF type %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
...example setup the newly constructed objects when constructing but only
+ * cast the provided argument when being called.
+ *
+ * Returns: %TRUE if the currently executing frame is a constructor
+ **/
+gboolean
+swfdec_as_context_is_constructing (SwfdecAsContext *context)
+{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), FALSE);
+
+ return context->frame && context->frame->construct;
+}
+
+/**
+ * swfdec_as_context_get_frame:
+ * @context: a #SwfdecAsContext
+ *
+ * This is a debugging function. It gets the topmost stack frame that is
+ * currently executing. If no function is executin...
2007 Dec 05
0
4 commits - libswfdec/swfdec_as_object.c libswfdec/swfdec_movie.c libswfdec/swfdec_policy_loader.c libswfdec/swfdec_text_field_movie.c libswfdec/swfdec_text_format.c
...-git a/libswfdec/swfdec_policy_loader.c b/libswfdec/swfdec_policy_loader.c
index 4158f27..983a034 100644
--- a/libswfdec/swfdec_policy_loader.c
+++ b/libswfdec/swfdec_policy_loader.c
@@ -61,7 +61,6 @@ swfdec_policy_loader_check (SwfdecAsContext *context, const char *text,
g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), FALSE);
g_return_val_if_fail (text != NULL, FALSE);
- g_return_val_if_fail (host != NULL, FALSE);
xml = swfdec_xml_new_no_properties (context, text, TRUE);
@@ -75,7 +74,11 @@ swfdec_policy_loader_check (SwfdecAsContext *context, const char *text,
return FALSE;
}
- h...
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
...t. This function must be called before any Actionscript
+ * is called on @context. The version is responsible for deciding which native
+ * functions and properties are available in the context.
+ **/
+void
+swfdec_as_context_startup (SwfdecAsContext *context, guint version)
+{
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
+ g_return_if_fail (context->state == SWFDEC_AS_CONTEXT_NEW);
+
+ context->version = version;
+ swfdec_as_function_init_context (context, version);
+ context->state = SWFDEC_AS_CONTEXT_RUNNING;
+}
+
/*** EVAL ***/
char *
diff --git a/libswfdec/swfdec_as_context.h b/libs...