Displaying 20 results from an estimated 21 matches for "swfdec_as_frame_new".
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
...egisters; i++) {
swfdec_as_value_mark (&frame->registers[i]);
}
- /* FIXME: do we want this? */
for (i = 0; i < frame->argc; i++) {
swfdec_as_value_mark (&frame->argv[i]);
}
@@ -102,18 +102,15 @@ swfdec_as_frame_init (SwfdecAsFrame *fra
}
SwfdecAsFrame *
-swfdec_as_frame_new (SwfdecAsObject *thisp, SwfdecScript *script)
+swfdec_as_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...
2007 Jul 11
0
Branch 'as' - libswfdec/swfdec_as_object.c
...O
void
swfdec_as_object_run (SwfdecAsObject *object, SwfdecScript *script)
{
+ SwfdecAsContext *context;
SwfdecAsFrame *frame;
g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
g_return_if_fail (SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
g_return_if_fail (script != NULL);
- frame = swfdec_as_frame_new (object->context, script);
+ context = object->context;
+ frame = swfdec_as_frame_new (context, script);
if (frame == NULL)
return;
swfdec_as_frame_set_this (frame, object);
swfdec_as_frame_preload (frame);
- swfdec_as_context_run (object->context);
+ swfdec_as_context_ru...
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
...e.org>
Date: Tue May 22 12:51:16 2007 +0200
change how frames get created and pushed onto the stack
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index a00ad65..9f99031 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -119,8 +119,6 @@ swfdec_as_frame_new (SwfdecAsContext *co
return NULL;
frame = g_object_new (SWFDEC_TYPE_AS_FRAME, NULL);
swfdec_as_object_add (SWFDEC_AS_OBJECT (frame), context, size);
- frame->next = context->frame;
- context->frame = frame;
frame->script = swfdec_script_ref (script);
frame->functio...
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
..._ensure_size (stack, 1);
+ swfdec_as_stack_push (stack, &value);
+ } else {
+ stack->cur -= (n_args - 1);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_peek (stack, 1));
+ }
+ return;
+ }
+ g_assert_not_reached ();
+ } else {
+ SwfdecAsFrame *frame;
+
+ frame = swfdec_as_frame_new (thisp, function->script);
+ /* FIXME: do the preloading here */
+ }
+}
+
diff --git a/libswfdec/swfdec_as_function.h b/libswfdec/swfdec_as_function.h
new file mode 100644
index 0000000..818d7cb
--- /dev/null
+++ b/libswfdec/swfdec_as_function.h
@@ -0,0 +1,73 @@
+/* SwfdecAs
+ * Copyright (C...
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
...-git a/libswfdec/swfdec_as_native_function.c b/libswfdec/swfdec_as_native_function.c
index 0905178..87f937d 100644
--- a/libswfdec/swfdec_as_native_function.c
+++ b/libswfdec/swfdec_as_native_function.c
@@ -51,6 +51,8 @@ swfdec_as_native_function_call (SwfdecAs
SwfdecAsFrame *frame;
frame = swfdec_as_frame_new_native (SWFDEC_AS_OBJECT (function)->context);
+ if (frame == NULL)
+ return NULL;
g_assert (native->name);
frame->function_name = native->name;
frame->function = function;
diff --git a/libswfdec/swfdec_as_super.c b/libswfdec/swfdec_as_super.c
index 72dc8d2..730748c 1006...
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
...e->super)
@@ -297,6 +362,8 @@ static void
swfdec_as_frame_init (SwfdecAsFrame *frame)
{
frame->function_name = "unnamed";
+ frame->blocks = g_array_new (FALSE, FALSE, sizeof (SwfdecAsFrameBlock));
+ frame->block_end = (gpointer) -1;
}
static void
@@ -329,7 +396,7 @@ swfdec_as_frame_new (SwfdecAsContext *co
frame->function_name = script->name;
SWFDEC_DEBUG ("new frame for function %s", frame->function_name);
frame->pc = script->buffer->data;
- frame->scope = SWFDEC_AS_SCOPE (frame);
+ frame->scope_chain = g_slist_prepend (frame->scop...
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
...e raw data for constant_pool */
- SwfdecAsValue * stack_begin; /* beginning of stack */
- guint8 * pc; /* program counter on stack */
- /* native function */
-};
-
-struct _SwfdecAsFrameClass {
- SwfdecAsScopeClass scope_class;
-};
-
GType swfdec_as_frame_get_type (void);
-SwfdecAsFrame * swfdec_as_frame_new (SwfdecAsContext * context,
- SwfdecScript * script);
-SwfdecAsFrame * swfdec_as_frame_new_native (SwfdecAsContext * context);
-void swfdec_as_frame_return (SwfdecAsFrame * frame,
- SwfdecAsValue * return_value);
-
-void swfdec_as_frame_set_this (SwfdecAsFrame * frame,
- Swfd...
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
...s = G_OBJECT_CLASS (klass);
+ SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (klass);
+
+ object_class->dispose = swfdec_as_frame_dispose;
+
+ asobject_class->mark = swfdec_as_frame_mark;
+}
+
+static void
+swfdec_as_frame_init (SwfdecAsFrame *frame)
+{
+}
+
+SwfdecAsFrame *
+swfdec_as_frame_new (SwfdecAsContext *context, SwfdecAsObject *thisp, SwfdecScript *script)
+{
+ SwfdecAsValue val;
+ SwfdecAsFrame *frame;
+ gsize size;
+
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+ g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (thisp), NULL);
+ g_return_val_if_fail (script !=...
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
..._if_fail (SWFDEC_IS_AS_OBJECT (thisp));
@@ -153,16 +79,12 @@ swfdec_as_function_call (SwfdecAsFunctio
g_return_if_fail (return_value != NULL);
context = thisp->context;
+ /* just to be sure... */
SWFDEC_AS_VALUE_SET_UNDEFINED (return_value);
- if (function->native) {
- frame = swfdec_as_frame_new_native (thisp);
- g_assert (function->name);
- frame->function_name = function->name;
- } else {
- frame = swfdec_as_frame_new (thisp, function->script);
- SWFDEC_AS_SCOPE (frame)->next = function->scope;
- frame->scope = SWFDEC_AS_SCOPE (frame);
- }
+ klass =...
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
...+0200
Add swfdec_as_frame_find_variable
Finds the variable in the current scope chain or NULL
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index 4614f7c..d2f3256 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -117,3 +117,27 @@ swfdec_as_frame_new (SwfdecAsObject *thi
return frame;
}
+SwfdecAsObject *
+swfdec_as_frame_find_variable (SwfdecAsFrame *frame, const SwfdecAsValue *variable)
+{
+ SwfdecAsObject *ret = NULL;
+ guint i;
+
+ g_return_val_if_fail (SWFDEC_IS_AS_FRAME (frame), NULL);
+ g_return_val_if_fail (SWFDEC_IS_AS_VALUE (...
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
...swfdec_as_frame_mark (SwfdecAsObject *ob
for (i = 0; i < frame->n_registers; i++) {
swfdec_as_value_mark (&frame->registers[i]);
}
+ swfdec_as_stack_mark (frame->stack);
SWFDEC_AS_OBJECT_CLASS (swfdec_as_frame_parent_class)->mark (object);
}
@@ -74,12 +77,16 @@ swfdec_as_frame_new (SwfdecAsContext *co
{
SwfdecAsValue val;
SwfdecAsFrame *frame;
+ SwfdecAsStack *stack;
gsize size;
g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (thisp), NULL);
g_return_val_if_fail (script != NULL, NULL);
+ stack...
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
...Otte <otte@gnome.org>
Date: Thu Apr 12 13:38:28 2007 +0200
copy the name of the calling script
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index 36db616..ee6c8ca 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -104,11 +104,12 @@ swfdec_as_frame_new (SwfdecAsObject *thi
if (!swfdec_as_context_use_mem (context, size))
return NULL;
frame = g_object_new (SWFDEC_TYPE_AS_FRAME, NULL);
- SWFDEC_DEBUG ("new frame");
swfdec_as_object_add (SWFDEC_AS_OBJECT (frame), context, size);
frame->next = context->frame;
conte...
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
...me->pc;
+ check_scope = FALSE;
}
if (frame == context->frame) {
#ifndef G_DISABLE_ASSERT
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index b36e1e4..de18973 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -122,7 +122,7 @@ swfdec_as_frame_new (SwfdecAsContext *co
SWFDEC_DEBUG ("new frame for function %s", frame->function_name);
frame->pc = script->buffer->data;
frame->stack = stack;
- frame->scope = NULL;
+ frame->scope = SWFDEC_AS_SCOPE (frame);
if (frame->next)
frame->var_object...
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
...fdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index 643fed5..8f404b7 100644
--- a/libswfdec/swfdec_as_function.c
+++ b/libswfdec/swfdec_as_function.c
@@ -139,7 +139,38 @@ swfdec_as_function_call (SwfdecAsFunctio
frame->function_name = function->name;
} else {
frame = swfdec_as_frame_new (thisp, function->script);
- /* FIXME: do the preloading here */
+ SWFDEC_ERROR ("do the preloading here");
}
}
+/*** AS CODE ***/
+
+static void
+swfdec_as_function_construct (SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+
+}
+
+void
+swf...
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
...= context->frame;
diff --git a/libswfdec/swfdec_as_native_function.c b/libswfdec/swfdec_as_native_function.c
index 626a380..4b8d40e 100644
--- a/libswfdec/swfdec_as_native_function.c
+++ b/libswfdec/swfdec_as_native_function.c
@@ -38,6 +38,7 @@ swfdec_as_native_function_call (SwfdecAs
frame = swfdec_as_frame_new_native (SWFDEC_AS_OBJECT (function)->context);
g_assert (native->name);
frame->function_name = native->name;
+ frame->function = function;
return frame;
}
diff --git a/libswfdec/swfdec_as_script_function.c b/libswfdec/swfdec_as_script_function.c
index 9278ffe..14873d1 10...
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
...s_object_mark (frame->target);
+ swfdec_as_object_mark (frame->target);
+ swfdec_as_object_mark (frame->original_target);
if (frame->function)
swfdec_as_object_mark (SWFDEC_AS_OBJECT (frame->function));
for (i = 0; i < frame->n_registers; i++) {
@@ -124,8 +121,6 @@ swfdec_as_frame_new (SwfdecAsContext *co
frame->pc = script->buffer->data;
frame->stack = stack;
frame->scope = SWFDEC_AS_SCOPE (frame);
- if (frame->next)
- frame->var_object = frame->next->var_object;
frame->n_registers = script->n_registers;
frame->registers =...
2007 Apr 04
0
Branch 'as' - 4 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
...function.h"
#include "swfdec_debug.h"
@@ -263,8 +264,8 @@ swfdec_as_object_run (SwfdecAsObject *ob
g_return_if_fail (SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
g_return_if_fail (script != NULL);
- g_assert_not_reached ();
- swfdec_as_context_run (object->context);
+ if (swfdec_as_frame_new (object, script))
+ swfdec_as_context_run (object->context);
}
void
diff-tree 4acdbf33dfad211c233f81a51f70d25e42676fc0 (from df9459902a3d4cc821233ce7a973c1284cb4ffcf)
Author: Benjamin Otte <otte@gnome.org>
Date: Wed Apr 4 14:46:21 2007 +0200
remember the number of registers...
2007 Jul 18
0
12 commits - configure.ac doc/swfdec-sections.txt libswfdec-gtk/swfdec_playback_alsa.c libswfdec/jpeg libswfdec/Makefile.am libswfdec/swfdec_amf.c libswfdec/swfdec_as_array.c libswfdec/swfdec_as_boolean.h libswfdec/swfdec_as_context.c
...SwfdecScript * script; /* script being executed */
SwfdecAsScope * scope; /* first object in scope chain (either this frame or a with object) */
@@ -65,8 +58,6 @@ struct _SwfdecAsFrameClass {
SwfdecAsScopeClass scope_class;
};
-GType swfdec_as_frame_get_type (void);
-
SwfdecAsFrame * swfdec_as_frame_new (SwfdecAsContext * context,
SwfdecScript * script);
SwfdecAsFrame * swfdec_as_frame_new_native (SwfdecAsContext * context);
diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index 66fcb00..3e9b6dd 100644
--- a/libswfdec/swfdec_as_function.c
+++ b/libswfdec/swfd...
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
...ne should add
some tests to ensure all strings behave like this and switch the rest of the
functions.
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index e0f6fe2..0c312bf 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -130,7 +130,7 @@ swfdec_as_frame_new (SwfdecAsContext *co
if (script->constant_pool) {
frame->constant_pool_buffer = swfdec_buffer_ref (script->constant_pool);
frame->constant_pool = swfdec_constant_pool_new_from_action (
- script->constant_pool->data, script->constant_pool->length);
+ script->c...
2007 Oct 17
0
28 commits - configure.ac debian/changelog debian/control debian/copyright debian/.gitignore debian/libswfdec0.dirs debian/libswfdec0.files debian/libswfdec0.shlibs debian/libswfdec-dev.dirs debian/libswfdec-dev.files debian/rules debian/swf-player.dirs
...*object, SwfdecScript *script,
+ SwfdecSecurity *sec)
{
SwfdecAsContext *context;
SwfdecAsFrame *frame;
g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
g_return_if_fail (script != NULL);
+ g_return_if_fail (SWFDEC_IS_SECURITY (sec));
context = object->context;
frame = swfdec_as_frame_new (context, script);
if (frame == NULL)
return;
+ swfdec_as_frame_set_security (frame, sec);
swfdec_as_frame_set_this (frame, object);
swfdec_as_frame_preload (frame);
swfdec_as_context_run (context);
@@ -1040,6 +1037,26 @@ swfdec_as_object_run (SwfdecAsObject *object, SwfdecScript...