+void
+mainWindow_free(mainWindow * mw)
+{
+ guint i, nb;
+
+ if(mw){
+
+g_critical("begin remove");
+ lttv_hooks_destroy(mw->Traceset_Info->before_traceset);
+ lttv_hooks_destroy(mw->Traceset_Info->after_traceset);
+ lttv_hooks_destroy(mw->Traceset_Info->before_trace);
+ lttv_hooks_destroy(mw->Traceset_Info->after_trace);
+ lttv_hooks_destroy(mw->Traceset_Info->before_tracefile);
+ lttv_hooks_destroy(mw->Traceset_Info->after_tracefile);
+ lttv_hooks_destroy(mw->Traceset_Info->before_event);
+ lttv_hooks_destroy(mw->Traceset_Info->after_event);
+g_critical("end remove");
+
+ if(mw->Traceset_Info->path != NULL)
+ g_free(mw->Traceset_Info->path);
+ if(mw->Traceset_Info->TracesetContext != NULL){
+ lttv_context_fini(LTTV_TRACESET_CONTEXT(mw->Traceset_Info->TracesetContext));
+ g_object_unref(mw->Traceset_Info->TracesetContext);
+ }
+ if(mw->Traceset_Info->traceset != NULL) {
+ nb = lttv_traceset_number(mw->Traceset_Info->traceset);
+ for(i = 0 ; i < nb ; i++) {
+ ltt_trace_close(
+ lttv_trace(lttv_traceset_get(mw->Traceset_Info->traceset, i)));
+ }
+ }
+
+ lttv_traceset_destroy(mw->Traceset_Info->traceset);
+
+ g_object_unref(mw->Attributes);
+
+ g_free(mw->Traceset_Info);
+ mw->Traceset_Info = NULL;
+
+ Main_Window_List = g_slist_remove(Main_Window_List, mw);
+
+ g_hash_table_destroy(mw->hash_menu_item);
+ g_hash_table_destroy(mw->hash_toolbar_item);
+
+ g_free(mw);
+ mw = NULL;
+ }
+}
+
+void
+mainWindow_Destructor(mainWindow * mw)
+{
+ if(GTK_IS_WIDGET(mw->MWindow)){
+ gtk_widget_destroy(mw->MWindow);
+ // gtk_widget_destroy(mw->HelpContents);
+ // gtk_widget_destroy(mw->AboutBox);
+ mw = NULL;
+ }
+ //mainWindow_free called when the object mw in the widget is unref.
+ //mainWindow_free(mw);
+}
+
+