Displaying 8 results from an estimated 8 matches for "swfdec_as_frame_pop_block".
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
...ount > 0)
- return;
-
if (!try_data->use_register)
g_free (try_data->variable_name);
g_free (try_data);
@@ -2595,7 +2581,7 @@ swfdec_action_try_end_finally (SwfdecAsFrame *frame, gpointer data)
if (!cx->exception)
swfdec_as_context_throw (cx, exception_value);
- swfdec_as_frame_pop_block (frame);
+ g_free (data);
}
static void
@@ -2610,9 +2596,6 @@ swfdec_action_try_end_catch (SwfdecAsFrame *frame, gpointer data)
cx = SWFDEC_AS_OBJECT (frame)->context;
- swfdec_action_try_data_ref (try_data);
- swfdec_as_frame_pop_block (frame);
-
if (swfdec_as_context_catch (cx...
2007 Oct 26
0
3 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_interpret.c
...;
+
if (!try_data->use_register)
g_free (try_data->variable_name);
g_free (try_data);
@@ -2575,14 +2591,15 @@ swfdec_action_try_end_finally (SwfdecAsFrame *frame, gpointer data)
g_return_if_fail (SWFDEC_IS_AS_FRAME (frame));
g_return_if_fail (SWFDEC_IS_AS_VALUE (error));
- swfdec_as_frame_pop_block (frame);
-
cx = SWFDEC_AS_OBJECT (frame)->context;
+ // finally has ended and we had exception stored, throw it
if (!cx->throwing) {
cx->throwing = TRUE;
cx->throw_value = *error;
}
+
+ swfdec_as_frame_pop_block (frame);
}
static void
@@ -2597,9 +2614,15 @@ sw...
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
...C_IS_AS_VALUE (exception_value));
cx = SWFDEC_AS_OBJECT (frame)->context;
// finally has ended and we had exception stored, throw it
- if (!cx->throwing)
- swfdec_as_context_throw (cx, exception);
+ if (!cx->exception)
+ swfdec_as_context_throw (cx, exception_value);
swfdec_as_frame_pop_block (frame);
}
@@ -2603,7 +2603,7 @@ swfdec_action_try_end_catch (SwfdecAsFrame *frame, gpointer data)
{
TryData *try_data = data;
SwfdecAsContext *cx;
- SwfdecAsValue *exception, val;
+ SwfdecAsValue *exception_value, val;
g_return_if_fail (SWFDEC_IS_AS_FRAME (frame));
g_return_if_fa...
2007 Oct 28
0
9 commits - configure.ac libswfdec/swfdec_as_context.c libswfdec/swfdec_audio_internal.h libswfdec/swfdec_codec_audio.c libswfdec/swfdec_codec_gst.c libswfdec/swfdec_sound.c
...ibswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -863,13 +863,6 @@ start:
pc = frame->pc;
continue;
}
- if (check_block && (pc < frame->block_start || pc >= frame->block_end)) {
- SWFDEC_LOG ("code exited block");
- swfdec_as_frame_pop_block (frame);
- pc = frame->pc;
- if (frame != context->frame)
- goto start;
- }
if (pc == exitpc) {
swfdec_as_frame_return (frame, NULL);
goto start;
@@ -878,6 +871,13 @@ start:
SWFDEC_ERROR ("pc %p not in valid range [%p, %p) anymore", pc, startpc...
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
...dbd..c902406 100644
--- a/libswfdec/swfdec_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -799,7 +799,7 @@ swfdec_as_frame_handle_exception (SwfdecAsFrame *frame)
/* pop blocks in the hope that we are inside a Try block */
while (cx->exception && frame->blocks->len) {
- swfdec_as_frame_pop_block (frame);
+ swfdec_as_frame_check_block (frame);
}
/* exit frame, nothing caught the exception */
if (cx->exception) {
commit a696fb3a36815396e9bfcf3eaeaff078e9c44713
Merge: bdc9305... c591a9e...
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Oct 28 15:27:26 2007 +0100...
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
..._if_fail (start < end);
+ g_return_if_fail (start >= frame->block_start);
+ g_return_if_fail (end <= frame->block_end);
+ g_return_if_fail (func != NULL);
+
+ frame->block_start = start;
+ frame->block_end = end;
+ g_array_append_val (frame->blocks, block);
+}
+
+void
+swfdec_as_frame_pop_block (SwfdecAsFrame *frame)
+{
+ SwfdecAsFrameBlock *block;
+
+ g_assert (frame->blocks->len > 0);
+
+ block = &g_array_index (frame->blocks, SwfdecAsFrameBlock, frame->blocks->len - 1);
+ if (block->destroy) {
+ block->destroy (block->data);
+ }
+ g_array_set_siz...
2007 Oct 11
0
12 commits - configure.ac doc/Makefile.am libswfdec/swfdec_as_frame.c libswfdec/swfdec_audio.c libswfdec/swfdec_audio_event.c libswfdec/swfdec_audio_event.h libswfdec/swfdec_shape_parser.c libswfdec/swfdec_sound.c test/sound
...if (frame->script) {
- swfdec_script_unref (frame->script);
- frame->script = NULL;
- }
if (frame->constant_pool) {
swfdec_constant_pool_free (frame->constant_pool);
frame->constant_pool = NULL;
@@ -285,6 +281,10 @@ swfdec_as_frame_dispose (GObject *object
swfdec_as_frame_pop_block (frame);
g_array_free (frame->blocks, TRUE);
g_slist_free (frame->scope_chain);
+ if (frame->script) {
+ swfdec_script_unref (frame->script);
+ frame->script = NULL;
+ }
G_OBJECT_CLASS (swfdec_as_frame_parent_class)->dispose (object);
}
diff-tree 8166f67d408287...
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
...c_as_frame.c
+++ b/libswfdec/swfdec_as_frame.c
@@ -805,7 +805,6 @@ swfdec_as_frame_handle_exception (SwfdecAsFrame *frame)
/* pop blocks in the hope that we are inside a Try block */
while (cx->exception && frame->blocks->len) {
- frame->pc = frame->block_end;
swfdec_as_frame_pop_block (frame);
}
/* no Try blocks caught it, exit frame */
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 57cf368..143f78b 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2601,8 +2601,8 @@ swfdec_action_try_end_catch (Swfd...