diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-07-09 09:47:46 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-07-09 09:56:25 +0200 |
commit | 589a29bb9aa7e4d1650412e9ac5512e517252d5e (patch) | |
tree | 3667e2d63de47e80b3a64c74ac384e93de971b1c /src/totem-session.c | |
parent | 7f9974d01d2a0a48749f68cbe9a756dfadd15878 (diff) | |
download | totem-589a29bb9aa7e4d1650412e9ac5512e517252d5e.tar.gz |
main: Optimise session saving
Diffstat (limited to 'src/totem-session.c')
-rw-r--r-- | src/totem-session.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/totem-session.c b/src/totem-session.c index d703b8be7..4664c9483 100644 --- a/src/totem-session.c +++ b/src/totem-session.c @@ -27,30 +27,27 @@ #include "totem-session.h" #include "totem-uri.h" +static GFile *session_file = NULL; + static GFile * get_session_file (void) { - GFile *file; char *path; + if (session_file) + return session_file; + path = g_build_filename (totem_dot_dir (), "session_state.xspf", NULL); - file = g_file_new_for_path (path); + session_file = g_file_new_for_path (path); g_free (path); - return file; + return session_file; } static char * get_session_filename (void) { - GFile *file; - char *uri; - - file = get_session_file (); - uri = g_file_get_uri (file); - g_object_unref (file); - - return uri; + return g_file_get_uri (get_session_file ()); } gboolean @@ -107,5 +104,10 @@ totem_session_save (Totem *totem) if (!totem_playing_dvd (totem->mrl)) curr = bacon_video_widget_get_current_time (totem->bvw); totem_playlist_save_session_playlist (totem->playlist, file, curr); - g_object_unref (file); +} + +void +totem_session_cleanup (Totem *totem) +{ + g_clear_object (&session_file); } |