static void impl_dispose (GObject *object) { RBGenericPlayerPlaylistSourcePrivate *priv = GET_PRIVATE (object); if (priv->save_playlist_id != 0) { g_source_remove (priv->save_playlist_id); save_playlist (RB_GENERIC_PLAYER_PLAYLIST_SOURCE (object)); } if (priv->player_source != NULL) { g_object_unref (priv->player_source); priv->player_source = NULL; } G_OBJECT_CLASS (rb_generic_player_playlist_source_parent_class)->dispose (object); }
static gboolean eina_lomo_plugin_deactivate (EinaActivatable *activatable, EinaApplication *application, GError **error) { EinaLomoPlugin *plugin = EINA_LOMO_PLUGIN(activatable); EinaLomoPluginPrivate *priv = plugin->priv; EinaApplication *app = eina_activatable_get_application(activatable); LomoPlayer *lomo = eina_application_get_interface(app, "lomo"); if (!LOMO_IS_PLAYER(lomo) || (lomo != priv->lomo)) { g_set_error(error, eina_lomo_plugin_quark(), EINA_LOMO_PLUGIN_ERROR_CANNOT_DESTROY_ENGINE, N_("Cannot destroy engine")); return FALSE; } eina_application_set_interface(app, "lomo", NULL); save_playlist(plugin); g_object_unref(priv->lomo); priv->lomo = NULL; return TRUE; }