*/
G_MODULE_EXPORT void init(LttvModule *self, int argc, char *argv[]) {
- Main_Win_Module = lttv_module_require(self, "mainwin", argc, argv);
-
- if(Main_Win_Module == NULL)
- {
- g_critical("Can't load Control Flow Viewer : missing mainwin\n");
- return;
- }
+ Main_Win_Module = lttv_module_require(self, "mainwin", argc, argv);
+
+ if(Main_Win_Module == NULL){
+ g_critical("Can't load Control Flow Viewer : missing mainwin\n");
+ return;
+ }
g_critical("GUI Event Viewer init()");
}
-void destroy_walk(gpointer data, gpointer user_data)
+void event_destroy_walk(gpointer data, gpointer user_data)
{
GuiEvents_Destructor((EventViewerData*)data);
}
g_critical("GUI Event Viewer destroy()");
- g_slist_foreach(sEvent_Viewer_Data_List, destroy_walk, NULL );
-
- g_slist_free(sEvent_Viewer_Data_List);
+ if(sEvent_Viewer_Data_List){
+ g_slist_foreach(sEvent_Viewer_Data_List, event_destroy_walk, NULL );
+ g_slist_free(sEvent_Viewer_Data_List);
+ }
/* Unregister the toolbar insert button */
ToolbarItemUnreg(hGuiEvents);
GtkCellRenderer *renderer;
EventViewerData* Event_Viewer_Data = g_new(EventViewerData,1) ;
RawTraceData * data;
- double time_value;
unsigned size;
Event_Viewer_Data->mw = pmParentWindow;
//get the life span of the traceset and set the upper of the scroll bar
getTracesetTimeSpan(Event_Viewer_Data->mw, &Event_Viewer_Data->time_span);
- time_value = Event_Viewer_Data->time_span.endTime.tv_sec - Event_Viewer_Data->time_span.startTime.tv_sec;
- time_value *= NANSECOND_CONST;
- time_value += (double)Event_Viewer_Data->time_span.endTime.tv_nsec - Event_Viewer_Data->time_span.startTime.tv_nsec;
- Event_Viewer_Data->VAdjust_C->upper = time_value;
+ start = ltt_time_sub(Event_Viewer_Data->time_span.endTime, Event_Viewer_Data->time_span.startTime);
+ Event_Viewer_Data->VAdjust_C->upper = ltt_time_to_double(start) * NANOSECONDS_PER_SECOND;
Event_Viewer_Data->append = TRUE;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(Event_Viewer_Data->Tree_V), &path, NULL);
if(gtk_tree_model_get_iter(model,&iter,path)){
gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
- ltt_time.tv_sec = time / NANSECOND_CONST;
- ltt_time.tv_nsec = time % NANSECOND_CONST;
+ ltt_time.tv_sec = time / NANOSECONDS_PER_SECOND;
+ ltt_time.tv_nsec = time % NANOSECONDS_PER_SECOND;
if(ltt_time.tv_sec != Event_Viewer_Data->current_time.tv_sec ||
ltt_time.tv_nsec != Event_Viewer_Data->current_time.tv_nsec)
remove_all_items_from_queue(Event_Viewer_Data->raw_trace_data_queue);
end.tv_sec = G_MAXULONG;
end.tv_nsec = G_MAXULONG;
- start = Event_Viewer_Data->time_span.startTime;
- value = (int)(time_value / NANSECOND_CONST);
- start.tv_sec += value;
- value = time_value / NANSECOND_CONST - value;
- value *= NANSECOND_CONST;
- start.tv_nsec += value;
- if(start.tv_nsec > NANSECOND_CONST){
- start.tv_sec++;
- start.tv_nsec -= NANSECOND_CONST;
- }
+ time = ltt_time_from_double(time_value / NANOSECONDS_PER_SECOND);
+ start = ltt_time_add(Event_Viewer_Data->time_span.startTime, time);
Event_Viewer_Data->previous_value = time_value;
get_events(Event_Viewer_Data, start, end, RESERVE_SMALL_SIZE,&size);
if(size < List_Height){
if(direction != SCROLL_NONE && direction != SCROLL_JUMP){
first = Event_Viewer_Data->raw_trace_data_queue->head;
raw_data = (RawTraceData*)g_list_nth_data(first,Event_Number);
- value = raw_data->time.tv_sec;
- value -= Event_Viewer_Data->time_span.startTime.tv_sec;
- value *= NANSECOND_CONST;
- value -= Event_Viewer_Data->time_span.startTime.tv_nsec;
- value += raw_data->time.tv_nsec;
- Event_Viewer_Data->VAdjust_C->value = value;
+ time = ltt_time_sub(raw_data->time, Event_Viewer_Data->time_span.startTime);
+ Event_Viewer_Data->VAdjust_C->value = ltt_time_to_double(time) * NANOSECONDS_PER_SECOND;
g_signal_stop_emission_by_name(G_OBJECT(Event_Viewer_Data->VAdjust_C), "value-changed");
Event_Viewer_Data->previous_value = value;
}
// Add a new row to the model
real_data = raw_data->time.tv_sec;
- real_data *= NANSECOND_CONST;
+ real_data *= NANOSECONDS_PER_SECOND;
real_data += raw_data->time.tv_nsec;
gtk_list_store_append (Event_Viewer_Data->Store_M, &iter);
gtk_list_store_set (Event_Viewer_Data->Store_M, &iter,
//gtk_widget_destroy(GTK_WIDGET(Event_Viewer_Data->Store_M));
g_warning("Delete Event data from destroy\n");
- GuiEvents_free(Event_Viewer_Data);
+ //GuiEvents_free(Event_Viewer_Data);
}
//FIXME : call hGuiEvents_Destructor for corresponding data upon widget destroy
{
EventViewerData *Event_Viewer_Data = (EventViewerData*) hook_data;
Event_Viewer_Data->current_time = *(LttTime*)call_data;
- uint64_t nsec = Event_Viewer_Data->current_time.tv_sec * NANSECOND_CONST
+ uint64_t nsec = Event_Viewer_Data->current_time.tv_sec * NANOSECONDS_PER_SECOND
+ Event_Viewer_Data->current_time.tv_nsec;
GtkTreeIter iter;
uint64_t time;