git-svn-id: http://ltt.polymtl.ca/svn@489 04897980-b3bd-0310-b5e0-8ef037075253
[lttv.git] / ltt / branches / poly / lttv / main / state.c
index e6b6a78a248bd3f4f2502968ac90a4e3df2b9ac9..0fa74a1c47ca25774bffca668d822a4235936575 100644 (file)
@@ -130,8 +130,8 @@ init(LttvTracesetState *self, LttvTraceset *ts)
     tc = self->parent.traces[i];
     tcs = (LttvTraceState *)tc;
     tcs->save_interval = 100000;
-    tcs->recompute_state_in_seek = false;
-    tcs->saved_state_ready = false;
+    tcs->recompute_state_in_seek = TRUE;
+    tcs->saved_state_ready = FALSE;
     fill_name_tables(tcs);
 
     nb_control = ltt_trace_control_tracefile_number(tc->t);
@@ -585,7 +585,6 @@ static LttvProcessState *create_process(LttvTracefileState *tfs,
   return process;
 }
 
-
 LttvProcessState *lttv_state_find_process(LttvTracefileState *tfs, 
     guint pid)
 {
@@ -596,6 +595,19 @@ LttvProcessState *lttv_state_find_process(LttvTracefileState *tfs,
   return process;
 }
 
+LttvProcessState *lttv_state_find_process_from_trace(LttvTraceState *ts, 
+    guint pid)
+{
+  LttvProcessState *process = g_hash_table_lookup(ts->processes, 
+      GUINT_TO_POINTER(pid));
+  //We do not create a process at this level, because we can be called
+  //from outside of state.c, and therefore cannot assume a tracefile
+  //exists.
+  //if(process == NULL) process = create_process_from_trace(ts, NULL, pid);
+  return process;
+}
+
+
 
 static void exit_process(LttvTracefileState *tfs, LttvProcessState *process) 
 {
@@ -1033,18 +1045,13 @@ void lttv_state_traceset_seek_time_closest(LttvTracesetState *self, LttTime t)
         /* restore the closest earlier saved state */
         if(min_pos != -1) lttv_state_restore(tcs, closest_tree);
 
-        /* there is no earlier saved state, restart at T0 */
-        else {
-          restore_init_state(tcs);
-          lttv_process_trace_seek_time(&(tcs->parent), ltt_time_zero);
-        }
-
+      }
       /* There is no saved state yet we want to have it. Restart at T0 */
       else {
         restore_init_state(tcs);
         lttv_process_trace_seek_time(&(tcs->parent), ltt_time_zero);
       }
-
+    }
     /* We want to seek quickly without restoring/updating the state */
     else {
       restore_init_state(tcs);
This page took 0.023922 seconds and 4 git commands to generate.