Benjamin Otte
2007-Oct-23 19:36 UTC
[Swfdec] 6 commits - libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_script_function.c libswfdec/swfdec_flash_security.c libswfdec/swfdec_movie.c libswfdec/swfdec_security_allow.c libswfdec/swfdec_security.c libswfdec/swfdec_security.h libswfdec/swfdec_tag.c libswfdec/swfdec_tag.h
libswfdec/swfdec_as_frame.c | 17 ++++--------- libswfdec/swfdec_as_internal.h | 7 +++++ libswfdec/swfdec_as_interpret.c | 2 + libswfdec/swfdec_as_interpret.h | 2 + libswfdec/swfdec_as_object.c | 42 ++++++++++++++++++++++++---------- libswfdec/swfdec_as_script_function.c | 2 + libswfdec/swfdec_flash_security.c | 12 ++++----- libswfdec/swfdec_movie.c | 6 +++- libswfdec/swfdec_security.c | 12 ++++----- libswfdec/swfdec_security.h | 4 +-- libswfdec/swfdec_security_allow.c | 4 +-- libswfdec/swfdec_tag.c | 15 ++++++++---- libswfdec/swfdec_tag.h | 23 +++++++++++++++++- 13 files changed, 98 insertions(+), 50 deletions(-) New commits: commit 3cc196c97cc658820304c73f72ec657eed9c4a22 Merge: 0863ec7... c0b1609... Author: Benjamin Otte <otte at gnome.org> Date: Tue Oct 23 21:36:45 2007 +0200 Merge branch 'master' of ssh://company at git.freedesktop.org/git/swfdec/swfdec commit 0863ec7ef74755b65212798418d84ce16c226d5b Author: Benjamin Otte <otte at gnome.org> Date: Tue Oct 23 14:58:22 2007 +0200 add swfdec_as_object_call_with_security() and use it diff --git a/libswfdec/swfdec_as_internal.h b/libswfdec/swfdec_as_internal.h index 98cb9ee..155cf3e 100644 --- a/libswfdec/swfdec_as_internal.h +++ b/libswfdec/swfdec_as_internal.h @@ -52,6 +52,13 @@ typedef SwfdecAsVariableForeach SwfdecAsVariableForeachRemove; typedef const char *(* SwfdecAsVariableForeachRename) (SwfdecAsObject *object, const char *variable, SwfdecAsValue *value, guint flags, gpointer data); +void swfdec_as_object_call_with_security + (SwfdecAsObject * object, + SwfdecSecurity * sec, + const char * name, + guint argc, + SwfdecAsValue * argv, + SwfdecAsValue * return_value); void swfdec_as_object_collect (SwfdecAsObject * object); guint swfdec_as_object_foreach_remove (SwfdecAsObject * object, SwfdecAsVariableForeach func, diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index 765a56c..ed0ae49 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -1056,6 +1056,32 @@ swfdec_as_object_run (SwfdecAsObject *object, SwfdecScript *script) g_object_unref (sec); } +void +swfdec_as_object_call_with_security (SwfdecAsObject *object, SwfdecSecurity *sec, + const char *name, guint argc, SwfdecAsValue *argv, SwfdecAsValue *return_value) +{ + static SwfdecAsValue tmp; /* ignored */ + SwfdecAsFunction *fun; + + g_return_if_fail (SWFDEC_IS_AS_OBJECT (object)); + g_return_if_fail (SWFDEC_IS_SECURITY (sec)); + g_return_if_fail (name != NULL); + g_return_if_fail (argc == 0 || argv != NULL); + g_return_if_fail (argc == 0 || argv != NULL); + + if (return_value) + SWFDEC_AS_VALUE_SET_UNDEFINED (return_value); + swfdec_as_object_get_variable (object, name, &tmp); + if (!SWFDEC_AS_VALUE_IS_OBJECT (&tmp)) + return; + fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&tmp); + if (!SWFDEC_IS_AS_FUNCTION (fun)) + return; + swfdec_as_function_call (fun, object, argc, argv, return_value ? return_value : &tmp); + swfdec_as_frame_set_security (object->context->frame, sec); + swfdec_as_context_run (object->context); +} + /** * swfdec_as_object_call: * @object: a #SwfdecAsObject @@ -1075,23 +1101,15 @@ void swfdec_as_object_call (SwfdecAsObject *object, const char *name, guint argc, SwfdecAsValue *argv, SwfdecAsValue *return_value) { - static SwfdecAsValue tmp; /* ignored */ - SwfdecAsFunction *fun; + SwfdecSecurity *sec; g_return_if_fail (SWFDEC_IS_AS_OBJECT (object)); g_return_if_fail (name != NULL); g_return_if_fail (argc == 0 || argv != NULL); - if (return_value) - SWFDEC_AS_VALUE_SET_UNDEFINED (return_value); - swfdec_as_object_get_variable (object, name, &tmp); - if (!SWFDEC_AS_VALUE_IS_OBJECT (&tmp)) - return; - fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&tmp); - if (!SWFDEC_IS_AS_FUNCTION (fun)) - return; - swfdec_as_function_call (fun, object, argc, argv, return_value ? return_value : &tmp); - swfdec_as_context_run (object->context); + sec = swfdec_security_allow_new (); + swfdec_as_object_call_with_security (object, sec, name, argc, argv, return_value); + g_object_unref (sec); } /** diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c index 3f91015..f3b1ee9 100644 --- a/libswfdec/swfdec_movie.c +++ b/libswfdec/swfdec_movie.c @@ -391,8 +391,10 @@ swfdec_movie_execute_script (SwfdecMovie *movie, SwfdecEventType condition) SWFDEC_SECURITY (movie->resource), condition, 0); } name = swfdec_event_type_get_name (condition); - if (name != NULL) - swfdec_as_object_call (SWFDEC_AS_OBJECT (movie), name, 0, NULL, NULL); + if (name != NULL) { + swfdec_as_object_call_with_security (SWFDEC_AS_OBJECT (movie), + SWFDEC_SECURITY (movie->resource), name, 0, NULL, NULL); + } } static void commit efe1e7136f57dde9f2e73c9dbea101c6849eed3e Author: Benjamin Otte <otte at gnome.org> Date: Tue Oct 23 14:46:48 2007 +0200 remove the concept of "merging" securities. It didn't make a lot of sense anyway. diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index 5582f2b..841f438 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -860,26 +860,19 @@ swfdec_as_frame_get_this (SwfdecAsFrame *frame) /** * swfdec_as_frame_set_security: * @frame: the frame to be executed - * @guard: the security guarding this frame + * @guard: the security to be used in this frame * - * Checks that @guard allows executing the frame. The frame's security will - * be set to what @guard returns. By default, a frame has the security of - * its parent frame. If it's the first frame, it's allowed everything. + * Sets the security to be used in this frame to @guard. **/ void swfdec_as_frame_set_security (SwfdecAsFrame *frame, SwfdecSecurity *guard) { - SwfdecSecurity *old; - g_return_if_fail (SWFDEC_IS_AS_FRAME (frame)); g_return_if_fail (SWFDEC_IS_SECURITY (guard)); - /* execution is not allowed anyway */ - if (frame->security == NULL) - return; + if (frame->security) + g_object_unref (frame->security); - old = frame->security; - frame->security = swfdec_security_allow (guard, old); - g_object_unref (old); + frame->security = g_object_ref (guard); } diff --git a/libswfdec/swfdec_flash_security.c b/libswfdec/swfdec_flash_security.c index 0acf747..70cb7cf 100644 --- a/libswfdec/swfdec_flash_security.c +++ b/libswfdec/swfdec_flash_security.c @@ -29,20 +29,20 @@ G_DEFINE_TYPE (SwfdecFlashSecurity, swfdec_flash_security, SWFDEC_TYPE_SECURITY) -static SwfdecSecurity * +static gboolean swfdec_flash_security_allow (SwfdecSecurity *guard, SwfdecSecurity *key) { if (guard == key) { - return g_object_ref (guard); + return TRUE; } else if (SWFDEC_IS_SECURITY_ALLOW (key)) { /* This only happens when calling functions (I hope) */ - return g_object_ref (guard); + return TRUE; } else if (SWFDEC_IS_FLASH_SECURITY (key)) { - /* FIXME: what do we do here? */ - return g_object_ref (key); + SWFDEC_FIXME ("implement security checking"); + return TRUE; } else { SWFDEC_ERROR ("unknown security %s, denying access", G_OBJECT_TYPE_NAME (key)); - return NULL; + return FALSE; } } diff --git a/libswfdec/swfdec_security.c b/libswfdec/swfdec_security.c index dfd66b3..faffd9b 100644 --- a/libswfdec/swfdec_security.c +++ b/libswfdec/swfdec_security.c @@ -46,20 +46,18 @@ swfdec_security_init (SwfdecSecurity *security) * Asks @guard to check if the given @key allows accessing it. If so, a * key for accessing the operation is returned. * - * Returns: %NULL if access was not granted, otherwise the new security - * priviliges for accessing the operation. Use g_object_unref() after - * use. + * Returns: %TRUE if access was granted, %FALSE otherwise. **/ -SwfdecSecurity * +gboolean swfdec_security_allow (SwfdecSecurity *guard, SwfdecSecurity *key) { SwfdecSecurityClass *klass; - g_return_val_if_fail (SWFDEC_IS_SECURITY (guard), NULL); - g_return_val_if_fail (SWFDEC_IS_SECURITY (key), NULL); + g_return_val_if_fail (SWFDEC_IS_SECURITY (guard), FALSE); + g_return_val_if_fail (SWFDEC_IS_SECURITY (key), FALSE); klass = SWFDEC_SECURITY_GET_CLASS (guard); - g_return_val_if_fail (klass->allow, NULL); + g_return_val_if_fail (klass->allow, FALSE); return klass->allow (guard, key); } diff --git a/libswfdec/swfdec_security.h b/libswfdec/swfdec_security.h index 1bfaf3f..6c03530 100644 --- a/libswfdec/swfdec_security.h +++ b/libswfdec/swfdec_security.h @@ -44,7 +44,7 @@ struct _SwfdecSecurityClass { GObjectClass object_class; - SwfdecSecurity * (* allow) (SwfdecSecurity * guard, + gboolean (* allow) (SwfdecSecurity * guard, SwfdecSecurity * from); gboolean (* allow_url) (SwfdecSecurity * guard, const SwfdecURL * url); @@ -52,7 +52,7 @@ struct _SwfdecSecurityClass GType swfdec_security_get_type (void); -SwfdecSecurity * swfdec_security_allow (SwfdecSecurity * guard, +gboolean swfdec_security_allow (SwfdecSecurity * guard, SwfdecSecurity * key); gboolean swfdec_security_allow_url (SwfdecSecurity * guard, const SwfdecURL * url); diff --git a/libswfdec/swfdec_security_allow.c b/libswfdec/swfdec_security_allow.c index 98d915e..87730fc 100644 --- a/libswfdec/swfdec_security_allow.c +++ b/libswfdec/swfdec_security_allow.c @@ -28,10 +28,10 @@ G_DEFINE_TYPE (SwfdecSecurityAllow, swfdec_security_allow, SWFDEC_TYPE_SECURITY) -static SwfdecSecurity * +static gboolean swfdec_security_allow_allow (SwfdecSecurity *guard, SwfdecSecurity *key) { - return g_object_ref (key); + return TRUE; } static gboolean commit 7ba31f63923ef396e92da50eb4935cba9f91d472 Author: Benjamin Otte <otte at gnome.org> Date: Mon Oct 22 20:18:17 2007 +0200 update tag list diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c index bad0be3..61827e7 100644 --- a/libswfdec/swfdec_tag.c +++ b/libswfdec/swfdec_tag.c @@ -655,7 +655,7 @@ static struct tag_func_struct tag_funcs[] = { [SWFDEC_TAG_DEFINEBUTTON] = {"DefineButton", tag_func_define_button, 0}, [SWFDEC_TAG_JPEGTABLES] = {"JPEGTables", swfdec_image_jpegtables, 0}, [SWFDEC_TAG_SETBACKGROUNDCOLOR] - {"SetBackgroundColor", tag_func_set_background_color, 0}, + {"SetBackgroundColor", tag_func_set_background_color, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_DEFINEFONT] = {"DefineFont", tag_func_define_font, 0}, [SWFDEC_TAG_DEFINETEXT] = {"DefineText", tag_func_define_text, 0}, [SWFDEC_TAG_DOACTION] = {"DoAction", tag_func_do_action, SWFDEC_TAG_DEFINE_SPRITE }, @@ -701,22 +701,27 @@ static struct tag_func_struct tag_funcs[] = { [SWFDEC_TAG_DEFINEVIDEOSTREAM] = {"DefineVideoStream", tag_func_define_video, 0}, [SWFDEC_TAG_VIDEOFRAME] = {"VideoFrame", tag_func_video_frame, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_DEFINEFONTINFO2] = {"DefineFontInfo2", tag_func_define_font_info, 0}, - [SWFDEC_TAG_MX4] = {"MX4", NULL, 0}, + [SWFDEC_TAG_DEBUGID] = {"DebugID", NULL, 0}, [SWFDEC_TAG_ENABLEDEBUGGER2] = {"EnableDebugger2", NULL, 0}, [SWFDEC_TAG_SCRIPTLIMITS] = {"ScriptLimits", NULL, 0}, - [SWFDEC_TAG_SETTABINDEX] = {"SetTabIndex", NULL, 0}, + [SWFDEC_TAG_SETTABINDEX] = {"SetTabIndex", NULL, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_FILEATTRIBUTES] = {"FileAttributes", tag_func_file_attributes, SWFDEC_TAG_FIRST_ONLY }, [SWFDEC_TAG_PLACEOBJECT3] = {"PlaceObject3", tag_func_enqueue, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_IMPORTASSETS2] = {"ImportAssets2", NULL, 0}, [SWFDEC_TAG_DEFINEFONTALIGNZONES] = {"DefineFontAlignZones", NULL, 0}, [SWFDEC_TAG_CSMTEXTSETTINGS] = {"CSMTextSettings", NULL, 0}, [SWFDEC_TAG_DEFINEFONT3] = {"DefineFont3", tag_func_define_font_3, 0}, - [SWFDEC_TAG_AVM2DECL] = {"AVM2Decl", NULL, 0}, + [SWFDEC_TAG_AVM2DECL] = {"AVM2Decl", NULL, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_METADATA] = {"Metadata", NULL, 0}, [SWFDEC_TAG_DEFINESCALINGGRID] = {"DefineScalingGrid", NULL, 0}, - [SWFDEC_TAG_AVM2ACTION] = {"AVM2Action", NULL, 0}, + [SWFDEC_TAG_AVM2ACTION] = {"AVM2Action", NULL, SWFDEC_TAG_DEFINE_SPRITE }, [SWFDEC_TAG_DEFINESHAPE4] = {"DefineShape4", tag_define_shape_4, 0}, [SWFDEC_TAG_DEFINEMORPHSHAPE2] = {"DefineMorphShape2", NULL, 0}, + [SWFDEC_TAG_PRIVATE_IMAGE] = { "PrivateImage", NULL, 0}, + [SWFDEC_TAG_DEFINESCENEDATA] = { "DefineSceneData", NULL, 0}, + [SWFDEC_TAG_DEFINEBINARYDATA] = { "DefineBinaryData", NULL, 0}, + [SWFDEC_TAG_DEFINEFONTNAME] = { "DefineFontName", NULL, 0}, + [SWFDEC_TAG_STARTSOUND2] = {"StartSound2", NULL, SWFDEC_TAG_DEFINE_SPRITE } }; static const int n_tag_funcs = sizeof (tag_funcs) / sizeof (tag_funcs[0]); diff --git a/libswfdec/swfdec_tag.h b/libswfdec/swfdec_tag.h index a3df92b..cee23ce 100644 --- a/libswfdec/swfdec_tag.h +++ b/libswfdec/swfdec_tag.h @@ -74,22 +74,41 @@ typedef enum { SWFDEC_TAG_DEFINEVIDEOSTREAM = 60, SWFDEC_TAG_VIDEOFRAME = 61, SWFDEC_TAG_DEFINEFONTINFO2 = 62, - SWFDEC_TAG_MX4 = 63, /*(?) */ + SWFDEC_TAG_DEBUGID = 63, SWFDEC_TAG_ENABLEDEBUGGER2 = 64, SWFDEC_TAG_SCRIPTLIMITS = 65, SWFDEC_TAG_SETTABINDEX = 66, +#if 0 + /* magic tags that seem to be similar to FILEATTRIBUTES */ + SWFDEC_TAG_ = 67, + SWFDEC_TAG_ = 68, +#endif SWFDEC_TAG_FILEATTRIBUTES = 69, SWFDEC_TAG_PLACEOBJECT3 = 70, SWFDEC_TAG_IMPORTASSETS2 = 71, +#if 0 + /* seems similar to SWFDEC_TAG_AVM2DECL */ + SWFDEC_TAG_ = 72, /* allowed with DefineSprite */ +#endif SWFDEC_TAG_DEFINEFONTALIGNZONES = 73, SWFDEC_TAG_CSMTEXTSETTINGS = 74, SWFDEC_TAG_DEFINEFONT3 = 75, SWFDEC_TAG_AVM2DECL = 76, SWFDEC_TAG_METADATA = 77, SWFDEC_TAG_DEFINESCALINGGRID = 78, +#if 0 + /* more magic tags that seem to be similar to FILEATTRIBUTES */ + SWFDEC_TAG_ = 80, + SWFDEC_TAG_ = 81, +#endif SWFDEC_TAG_AVM2ACTION = 82, SWFDEC_TAG_DEFINESHAPE4 = 83, - SWFDEC_TAG_DEFINEMORPHSHAPE2 = 84 + SWFDEC_TAG_DEFINEMORPHSHAPE2 = 84, + SWFDEC_TAG_PRIVATE_IMAGE = 85, + SWFDEC_TAG_DEFINESCENEDATA = 86, + SWFDEC_TAG_DEFINEBINARYDATA = 87, + SWFDEC_TAG_DEFINEFONTNAME = 88, + SWFDEC_TAG_STARTSOUND2 = 89 } SwfdecTag; typedef enum { commit 0e89b6f88661a503ab50aee90461d669239284de Author: Benjamin Otte <otte at gnome.org> Date: Mon Oct 22 19:00:25 2007 +0200 add missing actions to action list diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c index 4f8130c..823e161 100644 --- a/libswfdec/swfdec_as_interpret.c +++ b/libswfdec/swfdec_as_interpret.c @@ -2864,6 +2864,7 @@ const SwfdecActionSpec swfdec_as_actions[256] = { /* version 6 */ [SWFDEC_AS_ACTION_INSTANCE_OF] = { "InstanceOf", NULL }, [SWFDEC_AS_ACTION_ENUMERATE2] = { "Enumerate2", NULL, 1, -1, { NULL, NULL, NULL, swfdec_action_enumerate2, swfdec_action_enumerate2 } }, + [SWFDEC_AS_ACTION_BREAKPOINT] = { "Breakpoint", NULL, }, /* version 5 */ [SWFDEC_AS_ACTION_BIT_AND] = { "BitAnd", NULL, 2, 1, { NULL, NULL, swfdec_action_bitwise, swfdec_action_bitwise, swfdec_action_bitwise } }, [SWFDEC_AS_ACTION_BIT_OR] = { "BitOr", NULL, 2, 1, { NULL, NULL, swfdec_action_bitwise, swfdec_action_bitwise, swfdec_action_bitwise } }, @@ -2884,6 +2885,7 @@ const SwfdecActionSpec swfdec_as_actions[256] = { [SWFDEC_AS_ACTION_STORE_REGISTER] = { "StoreRegister", swfdec_action_print_store_register, 1, 1, { NULL, NULL, swfdec_action_store_register, swfdec_action_store_register, swfdec_action_store_register } }, [SWFDEC_AS_ACTION_CONSTANT_POOL] = { "ConstantPool", swfdec_action_print_constant_pool, 0, 0, { NULL, NULL, swfdec_action_constant_pool, swfdec_action_constant_pool, swfdec_action_constant_pool } }, /* version 3 */ + [SWFDEC_AS_ACTION_STRICT_MODE] = { "StrictMode", NULL, }, [SWFDEC_AS_ACTION_WAIT_FOR_FRAME] = { "WaitForFrame", swfdec_action_print_wait_for_frame, 0, 0, { swfdec_action_wait_for_frame, swfdec_action_wait_for_frame, swfdec_action_wait_for_frame, swfdec_action_wait_for_frame, swfdec_action_wait_for_frame } }, [SWFDEC_AS_ACTION_SET_TARGET] = { "SetTarget", swfdec_action_print_set_target, 0, 0, { swfdec_action_set_target, swfdec_action_set_target, swfdec_action_set_target, swfdec_action_set_target, swfdec_action_set_target } }, [SWFDEC_AS_ACTION_GOTO_LABEL] = { "GotoLabel", swfdec_action_print_goto_label, 0, 0, { swfdec_action_goto_label, swfdec_action_goto_label, swfdec_action_goto_label, swfdec_action_goto_label, swfdec_action_goto_label } }, diff --git a/libswfdec/swfdec_as_interpret.h b/libswfdec/swfdec_as_interpret.h index 44f1425..37689eb 100644 --- a/libswfdec/swfdec_as_interpret.h +++ b/libswfdec/swfdec_as_interpret.h @@ -114,6 +114,7 @@ typedef enum { SWFDEC_AS_ACTION_NEW_METHOD = 0x53, SWFDEC_AS_ACTION_INSTANCE_OF = 0x54, SWFDEC_AS_ACTION_ENUMERATE2 = 0x55, + SWFDEC_AS_ACTION_BREAKPOINT = 0x5F, SWFDEC_AS_ACTION_BIT_AND = 0x60, SWFDEC_AS_ACTION_BIT_OR = 0x61, SWFDEC_AS_ACTION_BIT_XOR = 0x62, @@ -128,6 +129,7 @@ typedef enum { SWFDEC_AS_ACTION_GET_URL = 0x83, SWFDEC_AS_ACTION_STORE_REGISTER = 0x87, SWFDEC_AS_ACTION_CONSTANT_POOL = 0x88, + SWFDEC_AS_ACTION_STRICT_MODE = 0x89, SWFDEC_AS_ACTION_WAIT_FOR_FRAME = 0x8A, SWFDEC_AS_ACTION_SET_TARGET = 0x8B, SWFDEC_AS_ACTION_GOTO_LABEL = 0x8C, commit e428af98bea20fccf08e87bc10ce2af34801cc87 Author: Benjamin Otte <otte at gnome.org> Date: Mon Oct 22 17:10:24 2007 +0200 fix memleak Thanks Valgrind diff --git a/libswfdec/swfdec_as_script_function.c b/libswfdec/swfdec_as_script_function.c index dc10056..c696305 100644 --- a/libswfdec/swfdec_as_script_function.c +++ b/libswfdec/swfdec_as_script_function.c @@ -56,6 +56,8 @@ swfdec_as_script_function_dispose (GObject *object) swfdec_script_unref (script->script); script->script = NULL; } + g_slist_free (script->scope_chain); + script->scope_chain = NULL; G_OBJECT_CLASS (swfdec_as_script_function_parent_class)->dispose (object); }
Reasonably Related Threads
- 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
- 2 commits - libswfdec/swfdec_flash_security.c libswfdec/swfdec_flash_security.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_player.c libswfdec/swfdec_resource_request.c libswfdec/swfdec_resource_request.h libswfdec/swfdec_security.h
- 18 commits - doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_event.c libswfdec/swfdec_event.h libswfdec/swfdec_flash_security.c
- 70 commits - configure.ac libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec-gtk.h libswfdec-gtk/swfdec_gtk_loader.c libswfdec-gtk/swfdec_gtk_player.c libswfdec-gtk/swfdec_gtk_socket.c libswfdec-gtk/swfdec_gtk_socket.h libswfdec-gtk/swfdec_playback_alsa.c
- 3 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader_internal.h libswfdec/swfdec_load_object_as.c libswfdec/swfdec_load_object.c libswfdec/swfdec_net_stream.c libswfdec/swfdec_player.c