main window quit remove loops before gtk_main_quit
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Tue, 23 Aug 2005 15:31:26 +0000 (15:31 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Tue, 23 Aug 2005 15:31:26 +0000 (15:31 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1060 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c
ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/gtkdirsel.c
ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c
ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindowtraces.c

index b126b85e62268c996b7f4e19fa9a67d74c58b324..0f94bf444a7e72a325b471ee4f1785de8a5d8ff7 100644 (file)
@@ -331,6 +331,18 @@ static void connect_focus_recursive(GtkWidget *widget,
                     (gpointer)viewer);
 }
 
+/* Stop all the processings and call gtk_main_quit() */
+static void mainwindow_quit()
+{
+  lttvwindowtraces_unregister_requests(g_quark_from_string("stats"));
+  lttvwindowtraces_unregister_requests(g_quark_from_string("state"));
+  lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("stats"));
+  lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("state"));
+
+  gtk_main_quit();
+}
+
+
 /* insert_viewer function constructs an instance of a viewer first,
  * then inserts the widget of the instance into the container of the
  * main window
@@ -1735,21 +1747,19 @@ void add_trace(GtkWidget * widget, gpointer user_data)
        break;
       }
       get_absolute_pathname(dir, abs_path);
-      // Mathieu : modify to not share traces anymore : mmap uses so much less
-      // memory than a full buffer read...
-//      trace_v = lttvwindowtraces_get_trace_by_name(abs_path);
-//      if(trace_v == NULL) {
+      trace_v = lttvwindowtraces_get_trace_by_name(abs_path);
+      if(trace_v == NULL) {
         trace = ltt_trace_open(abs_path);
         if(trace == NULL) {
           g_warning("cannot open trace %s", abs_path);
         } else {
           trace_v = lttv_trace_new(trace);
-          //lttvwindowtraces_add_trace(trace_v);
+          lttvwindowtraces_add_trace(trace_v);
           lttvwindow_add_trace(tab, trace_v);
         }
-//      } else {
-//        lttvwindow_add_trace(tab, trace_v);
-//      }
+      } else {
+        lttvwindow_add_trace(tab, trace_v);
+      }
 
       gtk_widget_destroy((GtkWidget*)file_selector);
       
@@ -1843,15 +1853,15 @@ void remove_trace(GtkWidget *widget, gpointer user_data)
     lttv_traceset_remove(traceset, index);
     lttv_trace_unref(trace_v);  // Remove local reference
 
-//    if(lttv_trace_get_ref_number(trace_v) <= 1) {
+    if(lttv_trace_get_ref_number(trace_v) <= 1) {
       /* ref 1 : lttvwindowtraces only*/
       ltt_trace_close(lttv_trace(trace_v));
       /* lttvwindowtraces_remove_trace takes care of destroying
        * the traceset linked with the trace_v and also of destroying
        * the trace_v at the same time.
        */
-//      lttvwindowtraces_remove_trace(trace_v);
-//    }
+      lttvwindowtraces_remove_trace(trace_v);
+    }
     
     tab->traceset_info->traceset_context =
       g_object_new(LTTV_TRACESET_STATS_TYPE, NULL);
@@ -2366,7 +2376,7 @@ void
 on_quit_activate                       (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-  gtk_main_quit ();
+  mainwindow_quit();
 }
 
 
@@ -3203,7 +3213,7 @@ on_MWindow_destroy                     (GtkWidget       *widget,
 
   g_info("There are now : %d windows\n",g_slist_length(g_main_window_list));
   if(g_slist_length(g_main_window_list) == 0)
-    gtk_main_quit ();
+    mainwindow_quit();
 }
 
 gboolean    
@@ -3813,7 +3823,7 @@ char * get_selection(char ** loaded_module_name, int nb_module,
   }
 
   id = gtk_dialog_run(GTK_DIALOG(dialogue));
-  GtkTreeModel **store_model = (GtkTreeModel*)store;
+  GtkTreeModel **store_model = (GtkTreeModel**)&store;
   switch(id){
     case GTK_RESPONSE_ACCEPT:
     case GTK_RESPONSE_OK:
index 801f59731ed2bf2c5d87edeec6b138f0d7d2bae9..d6d6d44db8b2a22c01903dcbd8cfba2112aa8a45 100644 (file)
@@ -3356,7 +3356,6 @@ attach_dir (CompletionDirSent *sent,
 
   cmpl_state->directory_storage =
     g_list_prepend (cmpl_state->directory_storage, new_dir);
-
   new_dir->sent = sent;
   new_dir->fullname = g_strdup (dir_name);
   new_dir->fullname_len = strlen (dir_name);
index 67c6a54e335ec34fd4015cbfe700da95e32cda65..42489de76c90403662a9a4bad97932adedb7c078 100644 (file)
@@ -243,11 +243,6 @@ static void destroy() {
   LttvTrace *trace;
   GSList *iter = NULL;
   
-  lttvwindowtraces_unregister_requests(g_quark_from_string("stats"));
-  lttvwindowtraces_unregister_requests(g_quark_from_string("state"));
-  lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("stats"));
-  lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("state"));
-
   lttv_option_remove("trace");
 
   lttv_hooks_remove_data(main_hooks, window_creation_hook, NULL);
index 0bece47a727d8f3f47a6e08daab995aa21cd5d10..a37d1e398b2506b9c9943fcd90fb632139fcec5e 100644 (file)
@@ -80,7 +80,7 @@ LttvTrace *lttvwindowtraces_get_trace_by_name(gchar *path)
 
     trace = lttv_trace(trace_v);
     g_assert(trace != NULL);
-    name = ltt_trace_name(trace);
+    name = g_quark_to_string(ltt_trace_name(trace));
 
     if(strcmp(name, path) == 0) {
       /* Found */
@@ -880,7 +880,6 @@ gboolean lttvwindowtraces_process_pending_requests(LttvTrace *trace)
  
   /* There is no events requests pending : we should never have been called! */
   g_assert(g_slist_length(*list_out) != 0 || g_slist_length(*list_in) != 0);
-#if 0
   /* 0.1 Lock traces */
   {
     guint iter_trace=0;
@@ -897,7 +896,6 @@ gboolean lttvwindowtraces_process_pending_requests(LttvTrace *trace)
   }
   /* 0.2 Sync tracefiles */
   lttv_process_traceset_synchronize_tracefiles(tsc);
-#endif //0
   /* 1. Before processing */
   {
     /* if list_in is empty */
@@ -1214,10 +1212,9 @@ gboolean lttvwindowtraces_process_pending_requests(LttvTrace *trace)
       }
     }
   }
-#if 0
   /* 4. Unlock traces */
   {
-    //lttv_process_traceset_get_sync_data(tsc);
+    lttv_process_traceset_get_sync_data(tsc);
     guint iter_trace;
     
     for(iter_trace=0; 
@@ -1228,7 +1225,6 @@ gboolean lttvwindowtraces_process_pending_requests(LttvTrace *trace)
       lttvwindowtraces_unlock(trace_v);
     }
   }
-#endif //0
   return ret_val;
 }
 
This page took 0.028945 seconds and 4 git commands to generate.