[Swfdec-commits] 2 commits - swfdec/swfdec_access.c swfdec/swfdec_resource.c
Benjamin Otte
company at kemper.freedesktop.org
Wed Jun 25 06:28:39 PDT 2008
swfdec/swfdec_access.c | 2 +-
swfdec/swfdec_resource.c | 30 ++++++++++++++++++------------
2 files changed, 19 insertions(+), 13 deletions(-)
New commits:
commit 19f65b0233987fb5c75988103eeb543744bb16f8
Author: Benjamin Otte <otte at gnome.org>
Date: Wed Jun 25 15:28:21 2008 +0200
fix reference handling madness
diff --git a/swfdec/swfdec_resource.c b/swfdec/swfdec_resource.c
index ee200d5..0f8b7bc 100644
--- a/swfdec/swfdec_resource.c
+++ b/swfdec/swfdec_resource.c
@@ -512,7 +512,6 @@ swfdec_resource_load_free (gpointer loadp)
{
SwfdecResourceLoad *load = loadp;
- swfdec_player_unroot (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (load->sandbox)->context), load);
g_free (load->url);
g_free (load->target_string);
if (load->buffer)
@@ -570,8 +569,10 @@ swfdec_resource_do_load (SwfdecPlayer *player, gboolean allowed, gpointer loadp)
SwfdecResource *resource;
SwfdecLoader *loader;
- if (!swfdec_as_context_use_mem (SWFDEC_AS_CONTEXT (player), sizeof (SwfdecResource)))
+ if (!swfdec_as_context_use_mem (SWFDEC_AS_CONTEXT (player), sizeof (SwfdecResource))) {
+ swfdec_player_unroot (player, load);
return;
+ }
resource = g_object_new (SWFDEC_TYPE_RESOURCE, NULL);
swfdec_as_object_add (SWFDEC_AS_OBJECT (resource), SWFDEC_AS_CONTEXT (player), sizeof (SwfdecResource));
resource->version = 8;
@@ -586,15 +587,17 @@ swfdec_resource_do_load (SwfdecPlayer *player, gboolean allowed, gpointer loadp)
load->url, swfdec_url_get_url (load->sandbox->url));
/* FIXME: is replacing correct? */
swfdec_resource_emit_error (resource, SWFDEC_AS_STR_IllegalRequest);
+ swfdec_player_unroot (player, load);
return;
}
/* FIXME: load nonetheless, even if there's no movie? */
- if (!swfdec_resource_create_movie (resource, load))
- return;
- loader = swfdec_player_load (player, load->url, load->buffer);
- swfdec_resource_set_loader (resource, loader);
- g_object_unref (loader);
+ if (swfdec_resource_create_movie (resource, load)) {
+ loader = swfdec_player_load (player, load->url, load->buffer);
+ swfdec_resource_set_loader (resource, loader);
+ g_object_unref (loader);
+ }
+ swfdec_player_unroot (player, load);
}
static const SwfdecAccessMatrix swfdec_resource_matrix = {
@@ -616,11 +619,12 @@ swfdec_resource_load_request (gpointer loadp, gpointer playerp)
SwfdecSpriteMovie *movie;
movie = load->target_movie ? (SwfdecSpriteMovie *) swfdec_movie_resolve (SWFDEC_MOVIE (load->target_movie)) : NULL;
- if (!SWFDEC_IS_SPRITE_MOVIE (movie)) {
+ if (SWFDEC_IS_SPRITE_MOVIE (movie)) {
+ swfdec_resource_replace_movie (movie, SWFDEC_MOVIE (movie)->resource);
+ } else {
SWFDEC_DEBUG ("no movie, not unloading");
- return;
}
- swfdec_resource_replace_movie (movie, SWFDEC_MOVIE (movie)->resource);
+ swfdec_player_unroot (player, load);
return;
}
@@ -636,12 +640,14 @@ swfdec_resource_load_request (gpointer loadp, gpointer playerp)
} else {
g_signal_emit_by_name (player, "fscommand", command, load->target_string);
}
+ swfdec_player_unroot (player, load);
return;
}
/* LAUNCH command (aka getURL) */
if (load->target_string && swfdec_player_get_level (player, load->target_string) < 0) {
swfdec_player_launch (player, load->url, load->target_string, load->buffer);
+ swfdec_player_unroot (player, load);
return;
}
@@ -668,8 +674,8 @@ swfdec_resource_load_internal (SwfdecPlayer *player,
load->buffer = buffer;
load->loader = loader;
- swfdec_player_root (player, load, swfdec_resource_load_mark);
- swfdec_player_request_resource (player, swfdec_resource_load_request, load, swfdec_resource_load_free);
+ swfdec_player_root_full (player, load, swfdec_resource_load_mark, swfdec_resource_load_free);
+ swfdec_player_request_resource (player, swfdec_resource_load_request, load, NULL);
}
gboolean
commit 1bdcadf1bb54c9a1464feb1b98981fac822d203b
Author: Benjamin Otte <otte at gnome.org>
Date: Wed Jun 25 15:28:12 2008 +0200
indent
diff --git a/swfdec/swfdec_access.c b/swfdec/swfdec_access.c
index e29845f..511e8c4 100644
--- a/swfdec/swfdec_access.c
+++ b/swfdec/swfdec_access.c
@@ -46,7 +46,7 @@ swfdec_player_allow_by_matrix (SwfdecPlayer *player, SwfdecSandbox *sandbox,
if (swfdec_url_is_local (url)) {
type = SWFDEC_ACCESS_LOCAL;
- } else if (swfdec_url_host_equal(url, sandbox->url)) {
+ } else if (swfdec_url_host_equal (url, sandbox->url)) {
type = SWFDEC_ACCESS_SAME_HOST;
} else {
type = SWFDEC_ACCESS_NET;
More information about the Swfdec-commits
mailing list