# HG changeset patch # User Mike Ruprecht # Date 1219899450 0 # Node ID 5c30047f960e387a7d575a04648e9b37d9a68187 # Parent f89bdd34c9f14c76a09c5776fd084e9e1359841a Properly free PurpleMedia when there's an error creating an FsStream. diff -r f89bdd34c9f1 -r 5c30047f960e libpurple/media.c --- a/libpurple/media.c Wed Aug 27 07:49:52 2008 +0000 +++ b/libpurple/media.c Thu Aug 28 04:57:30 2008 +0000 @@ -1199,6 +1199,7 @@ err->message); g_error_free(err); g_object_unref(participant); + g_hash_table_remove(media->priv->participants, who); purple_media_remove_session(media, session); g_free(session); return FALSE; diff -r f89bdd34c9f1 -r 5c30047f960e libpurple/protocols/jabber/jingle.c --- a/libpurple/protocols/jabber/jingle.c Wed Aug 27 07:49:52 2008 +0000 +++ b/libpurple/protocols/jabber/jingle.c Thu Aug 28 04:57:30 2008 +0000 @@ -949,6 +949,8 @@ return FALSE; } + jabber_jingle_session_set_media(session, media); + for (; contents; contents = g_list_delete_link(contents, contents)) { JingleSessionContent *jsc = contents->data; gboolean result = FALSE; @@ -986,12 +988,11 @@ if (!result) { purple_debug_error("jingle", "Couldn't create stream\n"); + purple_media_hangup(media); return FALSE; } } - jabber_jingle_session_set_media(session, media); - /* connect callbacks */ g_signal_connect_swapped(G_OBJECT(media), "accepted", G_CALLBACK(jabber_jingle_session_send_session_accept), session);