| 392 PURPLE_MEDIA_BACKEND_FS2(obj)); |
392 PURPLE_MEDIA_BACKEND_FS2(obj)); |
| 393 |
393 |
| 394 purple_debug_info("backend-fs2", "purple_media_backend_fs2_finalize\n"); |
394 purple_debug_info("backend-fs2", "purple_media_backend_fs2_finalize\n"); |
| 395 |
395 |
| 396 g_free(priv->conference_type); |
396 g_free(priv->conference_type); |
| 397 |
397 g_list_free_full(priv->streams, (GDestroyNotify)free_stream); |
| 398 for (; priv->streams; priv->streams = |
|
| 399 g_list_delete_link(priv->streams, priv->streams)) { |
|
| 400 PurpleMediaBackendFs2Stream *stream = priv->streams->data; |
|
| 401 free_stream(stream); |
|
| 402 } |
|
| 403 |
398 |
| 404 if (priv->sessions) { |
399 if (priv->sessions) { |
| 405 GList *sessions = g_hash_table_get_values(priv->sessions); |
400 GList *sessions = g_hash_table_get_values(priv->sessions); |
| 406 |
401 |
| 407 for (; sessions; sessions = |
402 g_list_free_full(sessions, (GDestroyNotify)free_session); |
| 408 g_list_delete_link(sessions, sessions)) { |
|
| 409 PurpleMediaBackendFs2Session *session = |
|
| 410 sessions->data; |
|
| 411 free_session(session); |
|
| 412 } |
|
| 413 |
|
| 414 g_hash_table_destroy(priv->sessions); |
403 g_hash_table_destroy(priv->sessions); |
| 415 } |
404 } |
| 416 |
405 |
| 417 G_OBJECT_CLASS(purple_media_backend_fs2_parent_class)->finalize(obj); |
406 G_OBJECT_CLASS(purple_media_backend_fs2_parent_class)->finalize(obj); |
| 418 } |
407 } |