Plug a few memory leaks
This commit is contained in:
parent
b6eccc01ae
commit
010be558cd
@ -170,14 +170,13 @@ static void open_file_dialog_handle_response(GtkWidget *dialog, gint response)
|
||||
|
||||
static void on_file_open_notify(GObject *filechooser, GParamSpec *pspec, gpointer data)
|
||||
{
|
||||
GValue *value;
|
||||
GValue value = { 0 };
|
||||
|
||||
value = g_new0(GValue, 1);
|
||||
g_value_init(value, pspec->value_type);
|
||||
g_object_get_property(filechooser, pspec->name, value);
|
||||
g_value_init(&value, pspec->value_type);
|
||||
g_object_get_property(filechooser, pspec->name, &value);
|
||||
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
|
||||
ui_lookup_widget(GTK_WIDGET(filechooser), "check_hidden")), g_value_get_boolean(value));
|
||||
ui_lookup_widget(GTK_WIDGET(filechooser), "check_hidden")), g_value_get_boolean(&value));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -278,6 +278,10 @@ void document_init_doclist()
|
||||
|
||||
void document_finalize()
|
||||
{
|
||||
guint i;
|
||||
|
||||
for (i = 0; i < documents_array->len; i++)
|
||||
g_free(documents[i]);
|
||||
g_ptr_array_free(documents_array, TRUE);
|
||||
}
|
||||
|
||||
|
||||
@ -194,7 +194,12 @@ static void menu_items_changed_cb(GtkContainer *container, GtkWidget *widget, Ge
|
||||
|
||||
priv = GEANY_MENU_BUTTON_ACTION_GET_PRIVATE(action);
|
||||
if (priv->menu != NULL)
|
||||
enable = (g_list_length(gtk_container_get_children(GTK_CONTAINER(priv->menu))) > 0);
|
||||
{
|
||||
GList *children = gtk_container_get_children(GTK_CONTAINER(priv->menu));
|
||||
|
||||
enable = (g_list_length(children) > 0);
|
||||
g_list_free(children);
|
||||
}
|
||||
else
|
||||
enable = FALSE;
|
||||
|
||||
|
||||
@ -540,12 +540,9 @@ void sidebar_remove_document(GeanyDocument *doc)
|
||||
|
||||
if (GTK_IS_WIDGET(doc->priv->tag_tree))
|
||||
{
|
||||
gtk_widget_destroy(doc->priv->tag_tree);
|
||||
if (GTK_IS_TREE_VIEW(doc->priv->tag_tree))
|
||||
{
|
||||
/* Because it was ref'd in sidebar_update_tag_list, it needs unref'ing */
|
||||
g_object_unref((gpointer)doc->priv->tag_tree);
|
||||
}
|
||||
gtk_widget_destroy(doc->priv->tag_tree); /* make GTK release its references, if any */
|
||||
/* Because it was ref'd in sidebar_update_tag_list, it needs unref'ing */
|
||||
g_object_unref(doc->priv->tag_tree);
|
||||
doc->priv->tag_tree = NULL;
|
||||
}
|
||||
}
|
||||
@ -1056,11 +1053,8 @@ void sidebar_finalize(void)
|
||||
{
|
||||
if (WIDGET(tv.default_tag_tree))
|
||||
{
|
||||
g_object_unref(tv.default_tag_tree);
|
||||
/* This is not exactly clean, default_tag_tree's ref_count is 2 when it is shown,
|
||||
* 1 oherwise. We should probably handle the ref_count more accurate. */
|
||||
if (WIDGET(tv.default_tag_tree))
|
||||
gtk_widget_destroy(tv.default_tag_tree);
|
||||
gtk_widget_destroy(tv.default_tag_tree); /* make GTK release its references, if any... */
|
||||
g_object_unref(tv.default_tag_tree); /* ...and release our own */
|
||||
}
|
||||
if (WIDGET(tv.popup_taglist))
|
||||
gtk_widget_destroy(tv.popup_taglist);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user