mirror of
https://github.com/profanity-im/profanity.git
synced 2025-01-03 14:57:42 -05:00
Fix a bunch of obvious memory leaks at termination
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
parent
76267ad5a7
commit
9edf2fe668
@ -2882,6 +2882,7 @@ void
|
|||||||
cmd_uninit(void)
|
cmd_uninit(void)
|
||||||
{
|
{
|
||||||
cmd_ac_uninit();
|
cmd_ac_uninit();
|
||||||
|
g_hash_table_destroy(commands);
|
||||||
g_hash_table_destroy(search_index);
|
g_hash_table_destroy(search_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,13 +430,18 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
color_pair_cache_reset(void)
|
color_pair_cache_free(void)
|
||||||
{
|
{
|
||||||
if (cache.pairs) {
|
if (cache.pairs) {
|
||||||
free(cache.pairs);
|
free(cache.pairs);
|
||||||
memset(&cache, 0, sizeof(cache));
|
memset(&cache, 0, sizeof(cache));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
color_pair_cache_reset(void)
|
||||||
|
{
|
||||||
|
color_pair_cache_free();
|
||||||
/*
|
/*
|
||||||
* COLOR_PAIRS is actually not a macro and is thus not a
|
* COLOR_PAIRS is actually not a macro and is thus not a
|
||||||
* compile-time constant
|
* compile-time constant
|
||||||
|
@ -61,5 +61,7 @@ int color_pair_cache_hash_str(const char* str, color_profile profile);
|
|||||||
int color_pair_cache_get(const char* pair_name);
|
int color_pair_cache_get(const char* pair_name);
|
||||||
/* clear cache */
|
/* clear cache */
|
||||||
void color_pair_cache_reset(void);
|
void color_pair_cache_reset(void);
|
||||||
|
/* free cache */
|
||||||
|
void color_pair_cache_free(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -251,6 +251,7 @@ theme_list(void)
|
|||||||
void
|
void
|
||||||
theme_close(void)
|
theme_close(void)
|
||||||
{
|
{
|
||||||
|
color_pair_cache_free();
|
||||||
if (theme) {
|
if (theme) {
|
||||||
g_key_file_free(theme);
|
g_key_file_free(theme);
|
||||||
theme = NULL;
|
theme = NULL;
|
||||||
|
@ -194,6 +194,7 @@ otr_shutdown(void)
|
|||||||
free(jid);
|
free(jid);
|
||||||
jid = NULL;
|
jid = NULL;
|
||||||
}
|
}
|
||||||
|
otrlib_shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -44,6 +44,7 @@ void otrlib_init_ops(OtrlMessageAppOps* ops);
|
|||||||
|
|
||||||
void otrlib_init_timer(void);
|
void otrlib_init_timer(void);
|
||||||
void otrlib_poll(void);
|
void otrlib_poll(void);
|
||||||
|
void otrlib_shutdown(void);
|
||||||
|
|
||||||
ConnContext* otrlib_context_find(OtrlUserState user_state, const char* const recipient, char* jid);
|
ConnContext* otrlib_context_find(OtrlUserState user_state, const char* const recipient, char* jid);
|
||||||
|
|
||||||
|
@ -62,6 +62,12 @@ otrlib_init_timer(void)
|
|||||||
current_interval = otrl_message_poll_get_default_interval(user_state);
|
current_interval = otrl_message_poll_get_default_interval(user_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
otrlib_shutdown(void)
|
||||||
|
{
|
||||||
|
g_timer_destroy(timer);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
otrlib_poll(void)
|
otrlib_poll(void)
|
||||||
{
|
{
|
||||||
|
@ -81,6 +81,7 @@
|
|||||||
static int inp_size;
|
static int inp_size;
|
||||||
static gboolean perform_resize = FALSE;
|
static gboolean perform_resize = FALSE;
|
||||||
static GTimer* ui_idle_time;
|
static GTimer* ui_idle_time;
|
||||||
|
static WINDOW* main_scr;
|
||||||
|
|
||||||
#ifdef HAVE_LIBXSS
|
#ifdef HAVE_LIBXSS
|
||||||
static Display* display;
|
static Display* display;
|
||||||
@ -92,7 +93,7 @@ void
|
|||||||
ui_init(void)
|
ui_init(void)
|
||||||
{
|
{
|
||||||
log_info("Initialising UI");
|
log_info("Initialising UI");
|
||||||
initscr();
|
main_scr = initscr();
|
||||||
nonl();
|
nonl();
|
||||||
cbreak();
|
cbreak();
|
||||||
noecho();
|
noecho();
|
||||||
@ -182,12 +183,16 @@ ui_reset_idle_time(void)
|
|||||||
void
|
void
|
||||||
ui_close(void)
|
ui_close(void)
|
||||||
{
|
{
|
||||||
|
g_timer_destroy(ui_idle_time);
|
||||||
|
endwin();
|
||||||
notifier_uninit();
|
notifier_uninit();
|
||||||
cons_clear_alerts();
|
cons_clear_alerts();
|
||||||
wins_destroy();
|
wins_destroy();
|
||||||
inp_close();
|
inp_close();
|
||||||
status_bar_close();
|
status_bar_close();
|
||||||
endwin();
|
free_title_bar();
|
||||||
|
delwin(main_scr);
|
||||||
|
delscreen(set_term(NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -273,6 +273,7 @@ void
|
|||||||
inp_close(void)
|
inp_close(void)
|
||||||
{
|
{
|
||||||
rl_callback_handler_remove();
|
rl_callback_handler_remove();
|
||||||
|
delwin(inp_win);
|
||||||
fclose(discard);
|
fclose(discard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,9 +119,7 @@ status_bar_init(void)
|
|||||||
void
|
void
|
||||||
status_bar_close(void)
|
status_bar_close(void)
|
||||||
{
|
{
|
||||||
if (tz) {
|
delwin(statusbar_win);
|
||||||
g_time_zone_unref(tz);
|
|
||||||
}
|
|
||||||
if (statusbar) {
|
if (statusbar) {
|
||||||
if (statusbar->time) {
|
if (statusbar->time) {
|
||||||
g_free(statusbar->time);
|
g_free(statusbar->time);
|
||||||
@ -137,6 +135,9 @@ status_bar_close(void)
|
|||||||
}
|
}
|
||||||
free(statusbar);
|
free(statusbar);
|
||||||
}
|
}
|
||||||
|
if (tz) {
|
||||||
|
g_time_zone_unref(tz);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -85,6 +85,12 @@ create_title_bar(void)
|
|||||||
inp_put_back();
|
inp_put_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
free_title_bar(void)
|
||||||
|
{
|
||||||
|
delwin(win);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
title_bar_update_virtual(void)
|
title_bar_update_virtual(void)
|
||||||
{
|
{
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#define UI_TITLEBAR_H
|
#define UI_TITLEBAR_H
|
||||||
|
|
||||||
void create_title_bar(void);
|
void create_title_bar(void);
|
||||||
|
void free_title_bar(void);
|
||||||
void title_bar_update_virtual(void);
|
void title_bar_update_virtual(void);
|
||||||
void title_bar_resize(void);
|
void title_bar_resize(void);
|
||||||
void title_bar_console(void);
|
void title_bar_console(void);
|
||||||
|
@ -187,6 +187,7 @@ tray_shutdown(void)
|
|||||||
}
|
}
|
||||||
g_string_free(icon_filename, TRUE);
|
g_string_free(icon_filename, TRUE);
|
||||||
g_string_free(icon_msg_filename, TRUE);
|
g_string_free(icon_msg_filename, TRUE);
|
||||||
|
gtk_main_quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -167,6 +167,8 @@ void
|
|||||||
connection_shutdown(void)
|
connection_shutdown(void)
|
||||||
{
|
{
|
||||||
connection_clear_data();
|
connection_clear_data();
|
||||||
|
g_hash_table_destroy(conn.requested_features);
|
||||||
|
g_hash_table_destroy(conn.available_resources);
|
||||||
if (conn.xmpp_conn) {
|
if (conn.xmpp_conn) {
|
||||||
xmpp_conn_release(conn.xmpp_conn);
|
xmpp_conn_release(conn.xmpp_conn);
|
||||||
conn.xmpp_conn = NULL;
|
conn.xmpp_conn = NULL;
|
||||||
|
@ -83,6 +83,12 @@ presence_sub_requests_init(void)
|
|||||||
sub_requests_ac = autocomplete_new();
|
sub_requests_ac = autocomplete_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
presence_sub_requests_destroy(void)
|
||||||
|
{
|
||||||
|
autocomplete_free(sub_requests_ac);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
presence_handlers_init(void)
|
presence_handlers_init(void)
|
||||||
{
|
{
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
void presence_handlers_init(void);
|
void presence_handlers_init(void);
|
||||||
void presence_sub_requests_init(void);
|
void presence_sub_requests_init(void);
|
||||||
|
void presence_sub_requests_destroy(void);
|
||||||
void presence_clear_sub_requests(void);
|
void presence_clear_sub_requests(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -233,7 +233,7 @@ session_shutdown(void)
|
|||||||
_session_free_internals();
|
_session_free_internals();
|
||||||
|
|
||||||
chat_sessions_clear();
|
chat_sessions_clear();
|
||||||
presence_clear_sub_requests();
|
presence_sub_requests_destroy();
|
||||||
|
|
||||||
connection_shutdown();
|
connection_shutdown();
|
||||||
if (saved_status) {
|
if (saved_status) {
|
||||||
|
Loading…
Reference in New Issue
Block a user