Memory Issue
- From: "Preeti Joshi" <preetijoshi79 gmail com>
- To: gtk-app-devel-list gnome org
- Subject: Memory Issue
- Date: Mon, 18 Dec 2006 10:02:52 +0530
Hi,
I am attaching a small piece of sample code that explains my problem.
int
main (int argc, char *argv[])
{
GtkWidget *window1;
#ifdef ENABLE_NLS
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
textdomain (PACKAGE);
#endif
gnome_init ("try", VERSION, argc, argv);
window1 = create_window1 ();
gtk_widget_show (window1);
gtk_main ();
return 0;
}
void
on_message_box_ok_clicked(GtkButton *button, gpointer *data);
void
on_button1_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *window =lookup_widget (button, "window1");
GtkWidget *small_window =create_window ();
gtk_widget_show (small_window);
//gtk_widget_destroy (window);
}
GtkWidget *create_window ()
{
GtkWidget *message_box;
GtkWidget *dialog_vbox1;
GtkWidget *message_box_ok;
GtkWidget *dialog_action_area1;
message_box = gnome_message_box_new (_("A test message box"),
GNOME_MESSAGE_BOX_INFO,
GNOME_STOCK_BUTTON_OK, NULL);
gtk_container_remove (GTK_CONTAINER (GNOME_DIALOG
(message_box)->action_area), GNOME_DIALOG (message_box)->buttons->data);
GNOME_DIALOG (message_box)->buttons = NULL;
gtk_object_set_data (GTK_OBJECT (message_box), "message_box",
message_box);
//gtk_widget_set_usize (message_box, 400, 175);
gtk_window_set_modal((GtkWindow *)message_box,TRUE);
gtk_window_set_title (GTK_WINDOW (message_box), _("Test"));
gtk_window_set_policy (GTK_WINDOW (message_box), FALSE, FALSE, FALSE);
dialog_vbox1 = GNOME_DIALOG (message_box)->vbox;
gtk_object_set_data (GTK_OBJECT (message_box), "dialog_vbox1",
dialog_vbox1);
gtk_widget_show (dialog_vbox1);
gnome_dialog_append_button (GNOME_DIALOG (message_box),
GNOME_STOCK_BUTTON_OK);
message_box_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG
(message_box)->buttons)->data);
gtk_widget_ref (message_box_ok);
gtk_object_set_data_full (GTK_OBJECT (message_box), "message_box_ok",
message_box_ok,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (message_box_ok); GTK_WIDGET_SET_FLAGS (message_box_ok,
GTK_CAN_DEFAULT);
dialog_action_area1 = GNOME_DIALOG (message_box)->action_area;
gtk_widget_ref (dialog_action_area1);
gtk_object_set_data_full (GTK_OBJECT (message_box), "dialog_action_area1",
dialog_action_area1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_signal_connect (GTK_OBJECT (message_box_ok), "clicked",
GTK_SIGNAL_FUNC (on_message_box_ok_clicked),
message_box);
return message_box;
}
void
on_message_box_ok_clicked(GtkButton *button, gpointer *data)
{
GtkWidget *box=(GtkWidget *)data;
gtk_widget_destroy(box);
}
void
on_window1_destroy (GtkObject *object,
gpointer user_data)
{
printf ("\nhi1\n");
}
gboolean
on_window1_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
printf ("\nhi2\n");
return FALSE;
}
The above code creates a main window and from button1 click creates a
message box . On closing this message box , memory allocated to message box
should have been freed. However gnome-system-monitor shows the following
stats:
when main window is displayed: 3.5 MB
when message box is also displayed: 3.9 MB
message box closed: 3.9 MB
main window closed through 'X' button: 3.9 MB
Please give your comments.
Regards,
Preeti
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]