add target pid for filtering
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.c
index 9eaec78395e32be88422873dd500dabf83bc6ade..c800b924d1114c91be7fc564d7d29165a9d7a5f6 100644 (file)
@@ -21,6 +21,7 @@
 #endif
 
 #include <string.h>
+#include <lttv/lttv.h>
 #include <lttv/tracecontext.h>
 #include <ltt/event.h>
 #include <ltt/facility.h>
@@ -170,6 +171,7 @@ static void init_tracefile_context(LttTracefile *tracefile,
   tfc->event = lttv_hooks_new();
   tfc->event_by_id = lttv_hooks_by_id_new();
   tfc->a = g_object_new(LTTV_ATTRIBUTE_TYPE, NULL);
+  tfc->target_pid = 0;
 }
 
 
@@ -766,6 +768,7 @@ guint lttv_process_traceset_middle(LttvTracesetContext *self,
     fac_id = ltt_event_facility_id(e);
     ev_id = ltt_event_eventtype_id(e);
     id = GET_HOOK_ID(fac_id, ev_id);
+    tfc->target_pid = 0; /* unset target PID */
     /* Hooks : 
      * return values : 0 : continue read, 1 : go to next position and stop read,
      * 2 : stay at the current position and stop read */
@@ -952,27 +955,11 @@ gboolean lttv_process_traceset_seek_position(LttvTracesetContext *self,
 static LttField *
 find_field(LttEventType *et, const GQuark field)
 {
-  LttType *t;
-
-  LttField *f;
-
-  guint i, nb;
-
   GQuark name;
 
-  /* Field is unset */
   if(field == 0) return NULL;
   
-  f = ltt_eventtype_field(et);
-  t = ltt_eventtype_type(et);
-  g_assert(ltt_type_class(t) == LTT_STRUCT);
-  nb = ltt_type_member_number(t);
-  for(i = 0 ; i < nb ; i++) {
-    ltt_type_member_type(t, i, &name);
-    if(name == field) break;
-  }
-  g_assert(i < nb);
-  return ltt_field_member(f, i);
+  return ltt_eventtype_field_by_name(et, field);
 }
 
 LttvTraceHookByFacility *lttv_trace_hook_get_fac(LttvTraceHook *th, 
@@ -1082,8 +1069,9 @@ event_error:
       g_quark_to_string(event));
   goto free;
 facility_error:
-  g_error("No %s facility", g_quark_to_string(facility));
-  goto free;
+  //Ignore this type of error : some facilities are not required.
+       //g_error("No %s facility", g_quark_to_string(facility));
+  return -1;
 free:
   g_array_free(th->fac_index, TRUE);
   g_array_free(th->fac_list, TRUE);
This page took 0.031273 seconds and 4 git commands to generate.