start fixing the f1 f2 f3 refs
[lttv.git] / ltt / branches / poly / lttv / lttv / state.c
index d6fa8971888c847ac422ddadcf98cda135392367..a4532f57642053a4086b65e0c01fd94ce63c98ca 100644 (file)
@@ -195,7 +195,6 @@ static LttvBdevState *bdevstate_new(void);
 static void bdevstate_free(LttvBdevState *);
 static void bdevstate_free_cb(gpointer key, gpointer value, gpointer user_data);
 static LttvBdevState *bdevstate_copy(LttvBdevState *bds);
-static LttvBdevState *bdev_state_get(LttvTraceState *ts, guint16 devcode);
 
 
 void lttv_state_save(LttvTraceState *self, LttvAttribute *container)
@@ -1615,11 +1614,7 @@ typedef struct _LttvNameTables {
 static void 
 create_name_tables(LttvTraceState *tcs) 
 {
-  int i, nb;
-
-  LttvTraceHook h;
-
-  LttType *t;
+  int i;
 
   GString *fe_name = g_string_new("");
 
@@ -1627,65 +1622,65 @@ create_name_tables(LttvTraceState *tcs)
 
   LttvAttributeValue v;
 
+  GArray *hooks;
+
   lttv_attribute_find(tcs->parent.t_a, LTTV_STATE_NAME_TABLES, 
       LTTV_POINTER, &v);
   g_assert(*(v.v_pointer) == NULL);
   *(v.v_pointer) = name_tables;
 
+  hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 1);
+
   if(!lttv_trace_find_hook(tcs->parent.t,
       LTT_EVENT_SYSCALL_ENTRY,
-      LTT_FIELD_SYSCALL_ID, 0, 0,
-      NULL, NULL, &h)) {
-    
-    thf = lttv_trace_hook_get_first(&h);
+      FIELD_ARRAY(LTT_FIELD_SYSCALL_ID),
+      NULL, NULL, &hooks)) {
     
-    t = ltt_field_type(thf->f1);
-    nb = ltt_type_element_number(t);
-    
-    lttv_trace_hook_destroy(&h);
-
-    name_tables->syscall_names = g_new(GQuark, nb);
-    name_tables->nb_syscalls = nb;
-
-    for(i = 0 ; i < nb ; i++) {
-      name_tables->syscall_names[i] = ltt_enum_string_get(t, i);
-      if(!name_tables->syscall_names[i]) {
-        GString *string = g_string_new("");
-        g_string_printf(string, "syscall %u", i);
-        name_tables->syscall_names[i] = g_quark_from_string(string->str);
-        g_string_free(string, TRUE);
-      }
+//    th = lttv_trace_hook_get_first(&th);
+//    
+//    t = ltt_field_type(th->f1);
+//    nb = ltt_type_element_number(t);
+//    
+//    name_tables->syscall_names = g_new(GQuark, nb);
+//    name_tables->nb_syscalls = nb;
+//
+//    for(i = 0 ; i < nb ; i++) {
+//      name_tables->syscall_names[i] = ltt_enum_string_get(t, i);
+//      if(!name_tables->syscall_names[i]) {
+//        GString *string = g_string_new("");
+//        g_string_printf(string, "syscall %u", i);
+//        name_tables->syscall_names[i] = g_quark_from_string(string->str);
+//        g_string_free(string, TRUE);
+//      }
+//    }
+
+    name_tables->syscall_names = g_new(GQuark, 256);
+    for(i = 0 ; i < 256 ; i++) {
+      g_string_printf(fe_name, "syscall %d", i);
+      name_tables->syscall_names[i] = g_quark_from_string(fe_name->str);
     }
-
-    //name_tables->syscall_names = g_new(GQuark, 256);
-    //for(i = 0 ; i < 256 ; i++) {
-    //  g_string_printf(fe_name, "syscall %d", i);
-    //  name_tables->syscall_names[i] = g_quark_from_string(fe_name->str);
-    //}
   } else {
     name_tables->syscall_names = NULL;
     name_tables->nb_syscalls = 0;
   }
+  lttv_trace_hook_remove_all(&hooks);
 
   if(!lttv_trace_find_hook(tcs->parent.t,
         LTT_EVENT_TRAP_ENTRY,
-        LTT_FIELD_TRAP_ID, 0, 0,
-        NULL, NULL, &h)) {
-
-    thf = lttv_trace_hook_get_first(&h);
-
-    t = ltt_field_type(thf->f1);
-    //nb = ltt_type_element_number(t);
+        FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+        NULL, NULL, &hooks)) {
+
+//    th = lttv_trace_hook_get_first(&th);
+//
+//    t = ltt_field_type(th->f1);
+//    //nb = ltt_type_element_number(t);
+//
+//    name_tables->trap_names = g_new(GQuark, nb);
+//    for(i = 0 ; i < nb ; i++) {
+//      name_tables->trap_names[i] = g_quark_from_string(
+//          ltt_enum_string_get(t, i));
+//    }
 
-    lttv_trace_hook_destroy(&h);
-
-    /*
-    name_tables->trap_names = g_new(GQuark, nb);
-    for(i = 0 ; i < nb ; i++) {
-      name_tables->trap_names[i] = g_quark_from_string(
-          ltt_enum_string_get(t, i));
-    }
-    */
     name_tables->nb_traps = 256;
     name_tables->trap_names = g_new(GQuark, 256);
     for(i = 0 ; i < 256 ; i++) {
@@ -1696,19 +1691,13 @@ create_name_tables(LttvTraceState *tcs)
     name_tables->trap_names = NULL;
     name_tables->nb_traps = 0;
   }
+  lttv_trace_hook_remove_all(&hooks);
 
   if(!lttv_trace_find_hook(tcs->parent.t,
         LTT_EVENT_IRQ_ENTRY,
-        LTT_FIELD_IRQ_ID, 0, 0,
-        NULL, NULL, &h)) {
+        FIELD_ARRAY(LTT_FIELD_IRQ_ID),
+        NULL, NULL, &hooks)) {
     
-    thf = lttv_trace_hook_get_first(&h);
-    
-    t = ltt_field_type(thf->f1);
-    //nb = ltt_type_element_number(t);
-
-    lttv_trace_hook_destroy(&h);
-
     /*
     name_tables->irq_names = g_new(GQuark, nb);
     for(i = 0 ; i < nb ; i++) {
@@ -1726,6 +1715,7 @@ create_name_tables(LttvTraceState *tcs)
     name_tables->nb_irqs = 0;
     name_tables->irq_names = NULL;
   }
+  lttv_trace_hook_remove_all(&hooks);
   /*
   name_tables->soft_irq_names = g_new(GQuark, nb);
   for(i = 0 ; i < nb ; i++) {
@@ -1739,7 +1729,7 @@ create_name_tables(LttvTraceState *tcs)
     g_string_printf(fe_name, "softirq %d", i);
     name_tables->soft_irq_names[i] = g_quark_from_string(fe_name->str);
   }
-
+  g_array_free(hooks, TRUE);
 
   g_string_free(fe_name, TRUE);
 }
@@ -2160,7 +2150,7 @@ static gboolean syscall_entry(void *hook_data, void *call_data)
   LttvProcessState *process = ts->running_process[cpu];
   LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
   LttvTraceHook *th = (LttvTraceHook *)hook_data;
-  struct marker_field *f = th->f1;
+  struct marker_field *f = lttv_trace_get_hook_field(th, 0);
 
   LttvExecutionSubmode submode;
 
@@ -2381,7 +2371,7 @@ static gboolean bdev_request_complete(void *hook_data, void *call_data)
 
   guint major = ltt_event_get_long_unsigned(e, th->f1);
   guint minor = ltt_event_get_long_unsigned(e, th->f2);
-  guint oper = ltt_event_get_long_unsigned(e, th->f3);
+  //guint oper = ltt_event_get_long_unsigned(e, th->f3);
   guint16 devcode = MKDEV(major,minor);
 
   /* have we seen this block device before? */
@@ -2479,7 +2469,7 @@ static gboolean schedchange(void *hook_data, void *call_data)
   guint cpu = s->cpu;
   LttvTraceState *ts = (LttvTraceState*)s->parent.t_context;
   LttvProcessState *process = ts->running_process[cpu];
-  LttvProcessState *old_process = ts->running_process[cpu];
+  //LttvProcessState *old_process = ts->running_process[cpu];
   
   LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
   LttvTraceHook *th = (LttvTraceHook *)hook_data;
@@ -2840,7 +2830,6 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   LttvTracefileState *s = (LttvTracefileState *)call_data;
   LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
   //It's slow : optimise later by doing this before reading trace.
-  LttEventType *et = ltt_event_eventtype(e);
   LttvTraceHook *th = (LttvTraceHook *)hook_data;
   guint parent_pid;
   guint pid;
@@ -2854,6 +2843,7 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   GQuark type, mode, submode, status;
   LttvExecutionState *es;
   guint i, nb_cpus;
+  struct marker_info *mi;
 
   /* PID */
   pid = ltt_event_get_unsigned(e, th->f1);
@@ -2866,27 +2856,33 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   command = ltt_event_get_string(e, th->f3);
 
   /* type */
-  f4 = ltt_eventtype_field_by_name(et, LTT_FIELD_TYPE);
+  mi = marker_get_info_from_id(ts->parent.t, e->event_id);
+  f4 = marker_get_field(mi, 3);
+  g_assert(f4->name == LTT_FIELD_TYPE);
   type = ltt_enum_string_get(ltt_field_type(f4),
       ltt_event_get_unsigned(e, f4));
 
   /* mode */
-  f5 = ltt_eventtype_field_by_name(et, LTT_FIELD_MODE);
+  f5 = marker_get_field(mi, 4);
+  g_assert(f5->name == LTT_FIELD_MODE);
   mode = ltt_enum_string_get(ltt_field_type(f5), 
       ltt_event_get_unsigned(e, f5));
 
   /* submode */
-  f6 = ltt_eventtype_field_by_name(et, LTT_FIELD_SUBMODE);
+  f6 = marker_get_field(mi, 5);
+  g_assert(f6->name == LTT_FIELD_SUBMODE);
   submode = ltt_enum_string_get(ltt_field_type(f6), 
       ltt_event_get_unsigned(e, f6));
 
   /* status */
-  f7 = ltt_eventtype_field_by_name(et, LTT_FIELD_STATUS);
+  f7 = marker_get_field(mi, 6);
+  g_assert(f7->name == LTT_FIELD_STATUS);
   status = ltt_enum_string_get(ltt_field_type(f7), 
       ltt_event_get_unsigned(e, f7));
 
   /* TGID */
-  f8 = ltt_eventtype_field_by_name(et, LTT_FIELD_TGID);
+  f8 = marker_get_field(mi, 7);
+  g_assert(f8->name == LTT_FIELD_TGID);
   if(f8) tgid = ltt_event_get_unsigned(e, f8);
   else tgid = 0;
 
@@ -3013,7 +3009,7 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
 {
   LttvTraceset *traceset = self->parent.ts;
 
-  guint i, j, k, l, nb_trace, nb_tracefile;
+  guint i, j, k, nb_trace, nb_tracefile;
 
   LttvTraceState *ts;
 
@@ -3023,8 +3019,6 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
 
   LttvTraceHook *th;
   
-  LttvTraceHook *hook;
-
   LttvAttributeValue val;
 
   gint ret;
@@ -3038,145 +3032,122 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
        associated by id hooks. */
 
     hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 19);
-    hooks = g_array_set_size(hooks, 19); // Max possible number of hooks.
-    hn = 0;
+    //hooks = g_array_set_size(hooks, 19); // Max possible number of hooks.
+    //hn = 0;
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_SYSCALL_ENTRY,
-        LTT_FIELD_SYSCALL_ID, 0, 0,
-        syscall_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_SYSCALL_ID),
+       syscall_entry, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_SYSCALL_EXIT,
-        0, 0, 0,
-        syscall_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        NULL,
+        syscall_exit, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_TRAP_ENTRY,
-        LTT_FIELD_TRAP_ID, 0, 0,
-        trap_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+        trap_entry, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_TRAP_EXIT,
-        0, 0, 0, 
-        trap_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        NULL,
+        trap_exit, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_IRQ_ENTRY,
-        LTT_FIELD_IRQ_ID, 0, 0,
-        irq_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_IRQ_ID),
+        irq_entry, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_IRQ_EXIT,
-        0, 0, 0, 
-        irq_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        NULL,
+        irq_exit, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_SOFT_IRQ_ENTRY,
-        LTT_FIELD_SOFT_IRQ_ID, 0, 0,
-        soft_irq_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_SOFT_IRQ_ID),
+        soft_irq_entry, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_SOFT_IRQ_EXIT,
-        0, 0, 0, 
-        soft_irq_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        NULL,
+        soft_irq_exit, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_SCHED_SCHEDULE,
-        LTT_FIELD_PREV_PID, LTT_FIELD_NEXT_PID, LTT_FIELD_PREV_STATE,
-        schedchange, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PREV_PID, LTT_FIELD_NEXT_PID,
+         LTT_FIELD_PREV_STATE),
+        schedchange, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_PROCESS_FORK,
-        LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, LTT_FIELD_CHILD_TGID,
-        process_fork, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID,
+         LTT_FIELD_CHILD_TGID),
+        process_fork, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_KTHREAD_CREATE,
-        LTT_FIELD_PID, 0, 0,
-        process_kernel_thread, NULL, &g_array_index(hooks, LttvTraceHook,
-          hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PID)
+        process_kernel_thread, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_PROCESS_EXIT,
-        LTT_FIELD_PID, 0, 0,
-        process_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PID),
+        process_exit, NULL, &hooks);
     
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_PROCESS_FREE,
-        LTT_FIELD_PID, 0, 0,
-        process_free, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PID),
+        process_free, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_EXEC,
-        LTT_FIELD_FILENAME, 0, 0,
-        process_exec, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_FILENAME),
+        process_exec, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_THREAD_BRAND,
-        LTT_FIELD_NAME, 0, 0,
-        thread_brand, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_NAME),
+        thread_brand, NULL, &hooks);
 
      /* statedump-related hooks */
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_PROCESS_STATE,
-        LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
-        enum_process_state, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME),
+        enum_process_state, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_STATEDUMP_END,
-        0, 0, 0,
-        statedump_end, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        NULL,
+        statedump_end, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_LIST_INTERRUPT,
-        LTT_FIELD_ACTION, LTT_FIELD_NUM, 0,
-        enum_interrupt, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_ACTION, LTT_FIELD_NUM),
+        enum_interrupt, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_REQUEST_ISSUE,
-        LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION,
-        bdev_request_issue, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION),
+        bdev_request_issue, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_REQUEST_COMPLETE,
-        LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION,
-        bdev_request_complete, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION),
+        bdev_request_complete, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_FUNCTION_ENTRY,
-        LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE, 0,
-        function_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE),
+        function_entry, NULL, &hooks);
 
-    ret = lttv_trace_find_hook(ts->parent.t,
+    lttv_trace_find_hook(ts->parent.t,
         LTT_EVENT_FUNCTION_EXIT,
-        LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE, 0,
-        function_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
-    if(ret) hn--;
+        FIELD_ARRAY(LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE),
+        function_exit, NULL, &hooks);
 
-    hooks = g_array_set_size(hooks, hn);
-  
     /* Add these hooks to each event_by_id hooks list */
 
     nb_tracefile = ts->parent.tracefiles->len;
@@ -3187,15 +3158,12 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
                                           LttvTracefileContext*, j));
 
       for(k = 0 ; k < hooks->len ; k++) {
-        hook = &g_array_index(hooks, LttvTraceHook, k);
-        for(l=0;l<hook->fac_list->len;l++) {
-          thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
+        th = &g_array_index(hooks, LttvTraceHook, k);
           lttv_hooks_add(
-            lttv_hooks_by_id_find(tfs->parent.event_by_id, thf->id),
-            thf->h,
-            thf,
+            lttv_hooks_by_id_find(tfs->parent.event_by_id, th->id),
+            th->h,
+            th,
             LTTV_PRIO_STATE);
-        }
       }
     }
     lttv_attribute_find(ts->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
@@ -3216,7 +3184,7 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
 {
   LttvTraceset *traceset = self->parent.ts;
 
-  guint i, j, k, l, nb_trace, nb_tracefile;
+  guint i, j, k, nb_trace, nb_tracefile;
 
   LttvTraceState *ts;
 
@@ -3224,9 +3192,7 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
 
   GArray *hooks;
 
-  LttvTraceHook *hook;
-  
-  LttvTraceHookByFacility *thf;
+  LttvTraceHook *th;
 
   LttvAttributeValue val;
 
@@ -3247,19 +3213,14 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
                                           LttvTracefileContext*, j));
 
       for(k = 0 ; k < hooks->len ; k++) {
-        hook = &g_array_index(hooks, LttvTraceHook, k);
-        for(l=0;l<hook->fac_list->len;l++) {
-          thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
-          
+        th = &g_array_index(hooks, LttvTraceHook, k);
           lttv_hooks_remove_data(
-            lttv_hooks_by_id_find(tfs->parent.event_by_id, thf->id),
-                    thf->h,
-                    thf);
-        }
+            lttv_hooks_by_id_find(tfs->parent.event_by_id, th->id),
+                    th->h,
+                    th);
       }
     }
-    for(k = 0 ; k < hooks->len ; k++)
-      lttv_trace_hook_destroy(&g_array_index(hooks, LttvTraceHook, k));
+    lttv_trace_hook_remove_all(&hooks);
     g_array_free(hooks, TRUE);
   }
 }
@@ -3276,16 +3237,8 @@ static gboolean state_save_event_hook(void *hook_data, void *call_data)
   
   LttvTracefileState *self = (LttvTracefileState *)call_data;
 
-  LttvTracefileState *tfcs;
-
   LttvTraceState *tcs = (LttvTraceState *)(self->parent.t_context);
 
-  LttEventPosition *ep;
-
-  guint i;
-
-  LttTracefile *tf;
-
   LttvAttribute *saved_states_tree, *saved_state_tree;
 
   LttvAttributeValue value;
This page took 0.031066 seconds and 4 git commands to generate.