Be more specific in the no SEEK_LAST fallback
[lttv.git] / lttv / lttv / traceset.c
index b40ca4e7a50434b0baac0537b2bf5c2002237c60..7e86c5b764b8e2c0e1f0787f6826b2e99c23932a 100644 (file)
@@ -70,9 +70,9 @@ LttvTraceset *lttv_traceset_new(void)
        ts->state_trace_handle_index = g_ptr_array_new();
        ts->has_precomputed_states = FALSE;
 
-       ts->time_span.start_time = ltt_time_from_uint64(0);
-       ts->time_span.end_time = ltt_time_from_uint64(0);
-
+       ts->time_span.start_time = ltt_time_zero;
+        ts->time_span.end_time = ltt_time_zero;
+       lttv_traceset_get_time_span_real(ts);
        return ts;
 }
 
@@ -520,11 +520,11 @@ guint64 lttv_traceset_get_timestamp_last_event(LttvTraceset *ts)
        last_position.bt_pos = &pos;
        last_position.timestamp = G_MAXUINT64;
        last_position.cpu_id = INT_MAX;
-       
+#ifdef BABEL_HAS_SEEK_LAST     
        /* Assign iterator to the last event of the traces */  
        last_position.bt_pos->type = BT_SEEK_LAST;
        last_position.iter = ts->iter;
-
+#endif
        return lttv_traceset_position_get_timestamp(&last_position);
 }
 
@@ -550,7 +550,8 @@ guint64 lttv_traceset_get_timestamp_begin(LttvTraceset *traceset)
                 {
                         currentTrace = g_ptr_array_index(traceset->traces,i);
                         timestamp_cur = bt_trace_handle_get_timestamp_begin(bt_ctx,
-                                                                        currentTrace->id);
+                                                                       currentTrace->id,
+                                                                       BT_CLOCK_REAL);
                         if(timestamp_cur < timestamp_min)
                                 timestamp_min = timestamp_cur;
                 }
@@ -582,7 +583,8 @@ guint64 lttv_traceset_get_timestamp_end(LttvTraceset *traceset)
                {
                        currentTrace = g_ptr_array_index(traceset->traces,i);
                        timestamp_cur = bt_trace_handle_get_timestamp_end(bt_ctx,
-                                                                       currentTrace->id);
+                                                                       currentTrace->id,
+                                                                       BT_CLOCK_REAL);
                        if(timestamp_cur > timestamp_max){
                                timestamp_max = timestamp_cur;
                        }
@@ -597,12 +599,18 @@ guint64 lttv_traceset_get_timestamp_end(LttvTraceset *traceset)
  */
 TimeInterval lttv_traceset_get_time_span_real(LttvTraceset *ts)
 {
+
+
        if(ltt_time_compare(ts->time_span.start_time, 
-                               ltt_time_from_uint64(0)) == 0 && ts->traces->len > 0){
+                               ltt_time_zero) == 0 && ts->traces->len > 0){
                ts->time_span.start_time = ltt_time_from_uint64(
                                lttv_traceset_get_timestamp_first_event(ts));
+#ifdef BABEL_HAS_SEEK_LAST     
                ts->time_span.end_time = ltt_time_from_uint64(
-                               lttv_traceset_get_timestamp_last_event(ts));
+                                       lttv_traceset_get_timestamp_end(ts));
+#else
+               ts->time_span.end_time = lttv_traceset_get_time_span(ts).end_time;      
+#endif
        }
         return ts->time_span;
 }
@@ -614,7 +622,7 @@ TimeInterval lttv_traceset_get_time_span_real(LttvTraceset *ts)
  */
 TimeInterval lttv_traceset_get_time_span(LttvTraceset *ts)
 {
-       if(ltt_time_compare(ts->time_span.start_time, ltt_time_from_uint64(0)) == 0){
+       if(ltt_time_compare(ts->time_span.start_time, ltt_time_zero) == 0){
                ts->time_span.start_time =ltt_time_from_uint64(
                                        lttv_traceset_get_timestamp_begin(ts));
                ts->time_span.end_time = ltt_time_from_uint64(
@@ -639,7 +647,7 @@ int set_values_position(const LttvTracesetPosition *pos)
        struct bt_ctf_event *event = bt_ctf_iter_read_event(pos->iter);
 
        if(event != NULL){
-               ((LttvTracesetPosition *)pos)->timestamp = bt_ctf_get_timestamp_raw(event); 
+               ((LttvTracesetPosition *)pos)->timestamp = bt_ctf_get_timestamp(event); 
                
                LttvEvent lttv_event;
                lttv_event.bt_event = event;
@@ -654,6 +662,7 @@ int set_values_position(const LttvTracesetPosition *pos)
        lttv_traceset_seek_to_position(&previous_pos);
        /*We must desallocate because the function bt_iter_get_pos() does a g_new */
        bt_iter_free_pos(previous_pos.bt_pos);
+       return 1;
 }
 
 guint64 lttv_traceset_position_get_timestamp(const LttvTracesetPosition *pos)
This page took 0.02512 seconds and 4 git commands to generate.