diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-06-07 12:10:20 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-06-07 12:10:20 +1200 |
commit | 55d2008d75a93d8a5fdc659149fb0baa9f4bcc5d (patch) | |
tree | 00306faee9f4d1199071bb81013634bb03fe8836 /src/seat.c | |
parent | 59d8aceadbe4c4d9b0a25bb90fa138a7e760d9c1 (diff) | |
download | lightdm-git-55d2008d75a93d8a5fdc659149fb0baa9f4bcc5d.tar.gz |
Correctly free seat module data on exit
Diffstat (limited to 'src/seat.c')
-rw-r--r-- | src/seat.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -78,7 +78,7 @@ G_DEFINE_TYPE_WITH_CODE (Seat, seat, G_TYPE_OBJECT, typedef struct { - const gchar *name; + gchar *name; GType type; } SeatModule; static GHashTable *seat_modules = NULL; @@ -88,13 +88,21 @@ static DisplayServer *create_display_server (Seat *seat, Session *session); static GreeterSession *create_greeter_session (Seat *seat); static void start_session (Seat *seat, Session *session); +static void +free_seat_module (gpointer data) +{ + SeatModule *module = data; + g_free (module->name); + g_free (module); +} + void seat_register_module (const gchar *name, GType type) { SeatModule *module; if (!seat_modules) - seat_modules = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + seat_modules = g_hash_table_new_full (g_str_hash, g_str_equal, free_seat_module, NULL); g_debug ("Registered seat module %s", name); |