Hi ----- Original Message ----- > Calling spice_session_set_shared_dir() with a NULL argument will trigger > a runtime warning. g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE) > will return NULL if (for example) ~/.config/user-dirs.dirs is missing, > and this is the default value for the "shared-dir" property which is set > upon SpiceSession construction. This means we could end up calling > spice_session_set_shared_dir() with a NULL parameter when instantiating > a SpiceSession instance. I would say it is a fine warning. I am not sure we want to hardcode the Public path here. > --- > gtk/spice-session.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/gtk/spice-session.c b/gtk/spice-session.c > index 169294d..86891ee 100644 > --- a/gtk/spice-session.c > +++ b/gtk/spice-session.c > @@ -287,6 +287,18 @@ session_disconnect(SpiceSession *self, gboolean > keep_main) > spice_session_abort_migration(self); > } > > +static char * > +spice_session_get_default_share_dir(void) > +{ > + const char *xdg_shared_dir; > + xdg_shared_dir = g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE); > + if (xdg_shared_dir != NULL) { > + return g_strdup(xdg_shared_dir); > + } > + > + return g_build_filename(g_get_home_dir(), "Public", NULL); > +} > + > static void > spice_session_dispose(GObject *gobject) > { > @@ -754,6 +766,7 @@ static void spice_session_set_property(GObject > *gobject, > static void spice_session_class_init(SpiceSessionClass *klass) > { > GObjectClass *gobject_class = G_OBJECT_CLASS(klass); > + char *default_share_dir; > > _wocky_http_proxy_get_type(); > _wocky_https_proxy_get_type(); > @@ -1310,15 +1323,17 @@ static void > spice_session_class_init(SpiceSessionClass *klass) > * > * Since: 0.24 > **/ > + default_share_dir = spice_session_get_default_share_dir(); > g_object_class_install_property > (gobject_class, PROP_SHARED_DIR, > g_param_spec_string("shared-dir", > "Shared directory", > "Shared directory", > - > g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE), > + default_share_dir, > G_PARAM_READWRITE | > G_PARAM_CONSTRUCT | > G_PARAM_STATIC_STRINGS)); > + g_free(default_share_dir); > > g_type_class_add_private(klass, sizeof(SpiceSessionPrivate)); > } > -- > 2.1.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel