app: ref the session info in gimp_dialog_factory_add_session_info()
and unref it in the callers after adding it. That's the proper way of doing it and fixes another warning when restoring a dock fails.
This commit is contained in:
@ -99,10 +99,14 @@ windows_open_recent_cmd_callback (GtkAction *action,
|
||||
GimpSessionInfo *info = g_object_get_data (G_OBJECT (action), "info");
|
||||
|
||||
g_object_ref (info);
|
||||
|
||||
gimp_container_remove (global_recent_docks, GIMP_OBJECT (info));
|
||||
|
||||
gimp_dialog_factory_add_session_info (gimp_dialog_factory_get_singleton (), info);
|
||||
gimp_dialog_factory_add_session_info (gimp_dialog_factory_get_singleton (),
|
||||
info);
|
||||
|
||||
gimp_session_info_restore (info, gimp_dialog_factory_get_singleton ());
|
||||
gimp_session_info_clear_info (info);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
||||
@ -205,9 +205,9 @@ session_init (Gimp *gimp)
|
||||
GIMP_LOG (DIALOG_FACTORY,
|
||||
"failed to parse session info %p, not adding",
|
||||
info);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -682,11 +682,13 @@ gimp_dialog_factory_add_session_info (GimpDialogFactory *factory,
|
||||
GimpSessionInfo *info)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_DIALOG_FACTORY (factory));
|
||||
g_return_if_fail (GIMP_IS_SESSION_INFO (info));
|
||||
|
||||
/* We want to append rather than prepend so that the serialized
|
||||
* order in sessionrc remains the same
|
||||
*/
|
||||
factory->p->session_infos = g_list_append (factory->p->session_infos, info);
|
||||
factory->p->session_infos = g_list_append (factory->p->session_infos,
|
||||
g_object_ref (info));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -911,7 +913,8 @@ gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
||||
NULL);
|
||||
}
|
||||
|
||||
factory->p->session_infos = g_list_append (factory->p->session_infos, info);
|
||||
gimp_dialog_factory_add_session_info (factory, info);
|
||||
g_object_unref (info);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user