From: Michael Smith Date: Thu, 20 Nov 2008 20:44:56 +0000 (+0000) Subject: gst/gstregistrybinary.c: In win32 codepath, if we fail to write the registry, create... X-Git-Tag: GIT_CONVERSION~59 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8b1ed490b3587efa4bb3a3eb6717c92bd1c95ec6;p=platform%2Fupstream%2Fgstreamer.git gst/gstregistrybinary.c: In win32 codepath, if we fail to write the registry, create the directory for it and try aga... Original commit message from CVS: * gst/gstregistrybinary.c: In win32 codepath, if we fail to write the registry, create the directory for it and try again, matching the behaviour in non-win32 codepaths. --- diff --git a/ChangeLog b/ChangeLog index dff4966..91bec7c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-11-20 Michael Smith + + * gst/gstregistrybinary.c: + In win32 codepath, if we fail to write the registry, create the + directory for it and try again, matching the behaviour in non-win32 + codepaths. + 2008-11-20 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_set_render_delay): diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c index 53dbacf..75dbc3a 100644 --- a/gst/gstregistrybinary.c +++ b/gst/gstregistrybinary.c @@ -134,9 +134,21 @@ gst_registry_binary_cache_finish (GstRegistry * registry, GError *error = NULL; if (!g_file_set_contents (cache->location, (const gchar *) cache->mem, cache->len, &error)) { - GST_ERROR ("Failed to write to cache file: %s", error->message); + /* Probably the directory didn't exist; create it */ + gchar *dir; + dir = g_path_get_dirname (cache->location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + g_error_free (error); - ret = FALSE; + error = NULL; + + if (!g_file_set_contents (cache->location, (const gchar *) cache->mem, + cache->len, &error)) { + GST_ERROR ("Failed to write to cache file: %s", error->message); + g_error_free (error); + ret = FALSE; + } } g_free (cache->mem);