diff options
author | Michael Ruprecht <maiku@pidgin.im> | 2009-11-02 23:14:33 +0000 |
---|---|---|
committer | Michael Ruprecht <maiku@pidgin.im> | 2009-11-02 23:14:33 +0000 |
commit | 81f7cb8eb45f7664a5aa41a90ef1f7cb54329239 (patch) | |
tree | 63087998671ffca1bbc96a727a74afad3559065d | |
parent | 4e740c42fffec0295bde8e6975bebf311fc47841 (diff) | |
download | pidgin-81f7cb8eb45f7664a5aa41a90ef1f7cb54329239.tar.gz |
Fix two assertions related to no sessions being created for the media object.cpw.maiku.media_refactor
-rw-r--r-- | libpurple/media/media.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libpurple/media/media.c b/libpurple/media/media.c index 12a14bcc49..b692cd18c8 100644 --- a/libpurple/media/media.c +++ b/libpurple/media/media.c @@ -739,7 +739,8 @@ purple_media_end(PurpleMedia *media, } /* Free the conference if no sessions left */ - if (g_hash_table_size(media->priv->sessions) == 0) { + if (media->priv->sessions != NULL && + g_hash_table_size(media->priv->sessions) == 0) { g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_END, NULL, NULL); @@ -846,10 +847,13 @@ purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type, /* Everything that needs to be emitted has been */ } else if (session_id == NULL && participant == NULL) { /* Emit for everything in the conference */ - GList *sessions = g_hash_table_get_values( - media->priv->sessions); + GList *sessions = NULL; GList *participants = media->priv->participants; + if (media->priv->sessions != NULL) + sessions = g_hash_table_get_values( + media->priv->sessions); + /* Emit for sessions */ for (; sessions; sessions = g_list_delete_link( sessions, sessions)) { |