Handler for grab-focus signal
[lttv.git] / ltt / branches / poly / lttv / modules / gui / controlflow / eventhooks.c
index 8a5c6b9ad8262fe07eacd03a9928b4cba83b4515..ab2cf623ae52ca54c33ebc99a43aa1294c6f3780 100644 (file)
@@ -152,7 +152,7 @@ int draw_event_hook(void *hook_data, void *call_data)
   LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
 
   LttvTracefileState *tfs = (LttvTracefileState *)call_data;
-
+  LttvTraceState *ts =(LttvTraceState *)LTTV_TRACEFILE_CONTEXT(tfs)->t_context;
   
   LttEvent *e;
   e = tfc->e;
@@ -193,9 +193,11 @@ int draw_event_hook(void *hook_data, void *call_data)
 
 
     /* Find process pid_out in the list... */
+    //process_out = lttv_state_find_process_from_trace(ts, pid_out);
     process_out = lttv_state_find_process(tfs, pid_out);
+    if(process_out == NULL) return 0;
     g_critical("out : %s",g_quark_to_string(process_out->state->s));
-
+    
     birth = process_out->creation_time;
     gchar *name = strdup(g_quark_to_string(process_out->name));
     HashedProcessData *hashed_process_data_out = NULL;
@@ -229,7 +231,9 @@ int draw_event_hook(void *hook_data, void *call_data)
     g_free(name);
     
     /* Find process pid_in in the list... */
+    //process_in = lttv_state_find_process_from_trace(ts, pid_in);
     process_in = lttv_state_find_process(tfs, pid_in);
+    if(process_in == NULL) return 0;
     g_critical("in : %s",g_quark_to_string(process_in->state->s));
 
     birth = process_in->creation_time;
@@ -749,6 +753,7 @@ int draw_after_hook(void *hook_data, void *call_data)
   LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
 
   LttvTracefileState *tfs = (LttvTracefileState *)call_data;
+  LttvTraceState *ts =(LttvTraceState *)LTTV_TRACEFILE_CONTEXT(tfs)->t_context;
 
   
   LttEvent *e;
@@ -791,7 +796,8 @@ int draw_after_hook(void *hook_data, void *call_data)
 
 
     /* Find process pid_out in the list... */
-    process_out = lttv_state_find_process(tfs, pid_out);
+    process_out = lttv_state_find_process_from_trace(ts, pid_out);
+    if(process_out == NULL) return 0;
     //g_critical("out : %s",g_quark_to_string(process_out->state->s));
 
     birth = process_out->creation_time;
@@ -827,7 +833,8 @@ int draw_after_hook(void *hook_data, void *call_data)
     g_free(name);
     
     /* Find process pid_in in the list... */
-    process_in = lttv_state_find_process(tfs, pid_in);
+    process_in = lttv_state_find_process_from_trace(ts, pid_in);
+    if(process_in == NULL) return 0;
     //g_critical("in : %s",g_quark_to_string(process_in->state->s));
 
     birth = process_in->creation_time;
@@ -1519,7 +1526,7 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data)
   draw_context->gc = gdk_gc_new(control_flow_data->drawing->pixmap);
   gdk_gc_copy(draw_context->gc, widget->style->black_gc);
  
-  if(process->state->s == LTTV_STATE_RUN)
+  if(process != NULL && process->state->s == LTTV_STATE_RUN)
   {
     PropertiesBG prop_bg;
     prop_bg.color = g_new(GdkColor,1);
@@ -1566,47 +1573,57 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data)
   prop_line.position = MIDDLE;
 
   /* color of line : status of the process */
-  if(process->state->s == LTTV_STATE_UNNAMED)
-  {
-    prop_line.color->red = 0xffff;
-    prop_line.color->green = 0xffff;
-    prop_line.color->blue = 0xffff;
-  }
-  else if(process->state->s == LTTV_STATE_WAIT_FORK)
-  {
-    prop_line.color->red = 0x0fff;
-    prop_line.color->green = 0xffff;
-    prop_line.color->blue = 0xfff0;
-  }
-  else if(process->state->s == LTTV_STATE_WAIT_CPU)
-  {
-    prop_line.color->red = 0xffff;
-    prop_line.color->green = 0xffff;
-    prop_line.color->blue = 0x0000;
-  }
-  else if(process->state->s == LTTV_STATE_EXIT)
-  {
-    prop_line.color->red = 0xffff;
-    prop_line.color->green = 0x0000;
-    prop_line.color->blue = 0xffff;
-  }
-  else if(process->state->s == LTTV_STATE_WAIT)
-  {
-    prop_line.color->red = 0xffff;
-    prop_line.color->green = 0x0000;
-    prop_line.color->blue = 0x0000;
-  }
-  else if(process->state->s == LTTV_STATE_RUN)
+  if(process != NULL)
   {
-    prop_line.color->red = 0x0000;
-    prop_line.color->green = 0xffff;
-    prop_line.color->blue = 0x0000;
+    if(process->state->s == LTTV_STATE_UNNAMED)
+    {
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0xffff;
+    }
+    else if(process->state->s == LTTV_STATE_WAIT_FORK)
+    {
+      prop_line.color->red = 0x0fff;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0xfff0;
+    }
+    else if(process->state->s == LTTV_STATE_WAIT_CPU)
+    {
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0x0000;
+    }
+    else if(process->state->s == LTTV_STATE_EXIT)
+    {
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0x0000;
+      prop_line.color->blue = 0xffff;
+    }
+    else if(process->state->s == LTTV_STATE_WAIT)
+    {
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0x0000;
+      prop_line.color->blue = 0x0000;
+    }
+    else if(process->state->s == LTTV_STATE_RUN)
+    {
+      prop_line.color->red = 0x0000;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0x0000;
+    }
+    else
+    {
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0xffff;
+    }
+
   }
   else
   {
-    prop_line.color->red = 0xffff;
-    prop_line.color->green = 0xffff;
-    prop_line.color->blue = 0xffff;
+      prop_line.color->red = 0xffff;
+      prop_line.color->green = 0xffff;
+      prop_line.color->blue = 0xffff;
   }
 
   draw_line((void*)&prop_line, (void*)draw_context);
This page took 0.024024 seconds and 4 git commands to generate.