Displaying 8 results from an estimated 8 matches for "swfdec_as_frame_push_block".
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
...the exception
// clear exception from the context
- exception = g_malloc (sizeof (SwfdecAsValue));
- *exception = val;
+ exception_value = g_malloc (sizeof (SwfdecAsValue));
+ *exception_value = val;
// FIXME: the exception value is not marked while finally block runs
swfdec_as_frame_push_block (frame, try_data->finally_start,
try_data->finally_start + try_data->finally_size,
- swfdec_action_try_end_finally, exception, g_free);
+ swfdec_action_try_end_finally, exception_value, g_free);
}
swfdec_action_try_data_unref (try_data);
commit 5c3f06cbeb5ee318b13b99565253b2f5ae7...
2007 Oct 28
0
4 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader.h libswfdec/swfdec_load_object.c
...s_frame_pop_block (frame);
-
if (swfdec_as_context_catch (cx, &val))
{
// we got an exception while in catch block:
@@ -2625,10 +2608,10 @@ swfdec_action_try_end_catch (SwfdecAsFrame *frame, gpointer data)
// FIXME: the exception value is not marked while finally block runs
swfdec_as_frame_push_block (frame, try_data->finally_start,
try_data->finally_start + try_data->finally_size,
- swfdec_action_try_end_finally, exception_value, g_free);
+ swfdec_action_try_end_finally, exception_value);
}
- swfdec_action_try_data_unref (try_data);
+ swfdec_action_try_data_free (try_data);...
2007 Oct 26
0
3 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_interpret.c
...} else {
+ }
+ else
+ {
// FIXME: this is duplicate of SetVariable
SwfdecAsObject *object;
const char *s, *rest;
@@ -2668,13 +2700,16 @@ swfdec_action_try_end_try (SwfdecAsFrame *frame, gpointer data)
}
}
+ swfdec_action_try_data_ref (try_data);
swfdec_as_frame_push_block (frame, try_data->start,
try_data->start + try_data->catch_size, swfdec_action_try_end_catch,
- try_data, NULL);
+ try_data, swfdec_action_try_data_unref);
cx->throwing = FALSE;
SWFDEC_AS_VALUE_SET_UNDEFINED (&cx->throw_value);
}
+
+ swfdec_action_try_data_unref...
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
...t;otte at gnome.org>
Date: Thu Sep 13 13:36:03 2007 +0200
rewrite scope chain handling
Previously we had lots of scope objects that were instantiated whenever the
scope chain changed.
Now it's just a list of objects in the scope chain.
It also adds a function swfdec_as_frame_push_block() that allows registering
a callback that gets called whenever the program counter leaves that block. It
is used for implementing With and should also work for try/catch.
diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am
index b3e5bdf..ca6d565 100644
--- a/libswfdec/Makefile.am
++...
2007 Sep 14
0
3 commits - libswfdec/swfdec_as_frame.c test/trace
...uthor: Benjamin Otte <otte at gnome.org>
Date: Fri Sep 14 19:35:47 2007 +0200
allow empty blocks
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index c11c03a..a0db0d3 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -212,7 +212,7 @@ swfdec_as_frame_push_block (SwfdecAsFram
SwfdecAsFrameBlock block = { start, end, func, data, destroy };
g_return_if_fail (SWFDEC_IS_AS_FRAME (frame));
- g_return_if_fail (start < end);
+ g_return_if_fail (start <= end);
g_return_if_fail (start >= frame->block_start);
g_return_if_fail (end <= f...
2007 Nov 08
0
8 commits - libswfdec-gtk/swfdec_gtk_player.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_date.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_player.c test/trace
...e program counter leaves the guarded region, when the function
- * returns or when the context aborted due to an unrecoverable error.
+ * either when the program counter leaves the guarded region, when the
+ * function returns or when the context aborted due to an unrecoverable error.
**/
void
swfdec_as_frame_push_block (SwfdecAsFrame *frame, const guint8 *start,
commit 91adc003c115b3128ac86af06e0ac4b356bcbd6e
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Nov 8 19:33:46 2007 +0100
clarify swfdec_player_new() documentation.
diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c
inde...
2007 Oct 28
1
9 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_object.c libswfdec/swfdec_codec_gst.c test/trace
...+}
+
/**
* swfdec_as_frame_get_next:
* @frame: a #SwfdecAsFrame
diff --git a/libswfdec/swfdec_as_frame_internal.h b/libswfdec/swfdec_as_frame_internal.h
index b09fb9c..1e2075d 100644
--- a/libswfdec/swfdec_as_frame_internal.h
+++ b/libswfdec/swfdec_as_frame_internal.h
@@ -105,6 +105,7 @@ void swfdec_as_frame_push_block (SwfdecAsFrame * frame,
GDestroyNotify destroy);
void swfdec_as_frame_pop_block (SwfdecAsFrame * frame);
void swfdec_as_frame_check_block (SwfdecAsFrame * frame);
+void swfdec_as_frame_handle_exception(SwfdecAsFrame * frame);
G_END_DECLS
commit 2068cff060c579a7b11aaffd36f7f1613a8...
2007 Oct 29
0
20 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_html_parser.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h
...r exception from the context
+ // create new block for finally to pass on the exception
+ // jump to that block
exception_value = g_malloc (sizeof (SwfdecAsValue));
*exception_value = val;
@@ -2611,6 +2611,7 @@ swfdec_action_try_end_catch (SwfdecAsFrame *frame, gpointer data)
swfdec_as_frame_push_block (frame, try_data->finally_start,
try_data->finally_start + try_data->finally_size,
swfdec_action_try_end_finally, exception_value);
+ frame->pc = try_data->finally_start;
}
swfdec_action_try_data_free (try_data);
@@ -2639,8 +2640,8 @@ swfdec_action_try_end_try (SwfdecA...