memory leak (continuation)



An expansion to an earlier mail I sent... In this code snippet below I can observ that removing(destroying) container widgets does not have the desired effect. Please comment:>

Code snippet...........................................
cur_page = gtk_notebook_get_current_page( notebook );
fprintf( stderr, "on_notebook_switch_page,switching from:%i to:%i\n", cur_page, page_n );

child = gtk_container_children(GTK_CONTAINER(notebookpage[cur_page].widget));
while( child ) {
  GtkWidget *widget;

  widget = GTK_WIDGET(child->data);
  gtk_container_remove(
  GTK_CONTAINER(notebookpages[cur_page].widget),widget );

  fprintf( stderr, "on_notebook_switch_page,destroy widget:%p", widget);
  gtk_widget_destroy( widget );

  if( widget )
    fprintf( stderr, " widget still referenced:%p\n", widget);
  else
    fprintf( stderr, "\n" );

  child = child->next;
}
create_page_item( notebook, page_n );


example page item created..................................
case HDWR_CONF:
page_item = create_hardware_config();
gtk_container_add(GTK_CONTAINER(notebookpages[page_n].widget),page_item);


To further enlighten, the widget returned by (create_hardware_config) routine, as with all others, does have reference count of at least 1 and (signal_connect) is set for destroy_event on the top-level widget or this widget.



William P. Dulyea
_______________
Phone: 651-5206
 Office: L-423




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]