stats hook error handling better
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 10 Mar 2006 17:04:05 +0000 (17:04 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 10 Mar 2006 17:04:05 +0000 (17:04 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1674 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/lttv/lttv/stats.c

index 22600255efde4a29dcc9eb5bde8c88311dce8a53..06f6fa39827acb7dd724a4261f183d978c5ffc99 100644 (file)
@@ -823,6 +823,7 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self)
   LttvAttributeValue val;
 
   gint ret;
+       gint hn;
 
   nb_trace = lttv_traceset_number(traceset);
   for(i = 0 ; i < nb_trace ; i++) {
@@ -833,152 +834,156 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self)
 
     hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 9);
     g_array_set_size(hooks, 9);
+               hn=0;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_ENTRY,
         LTT_FIELD_SYSCALL_ID, 0, 0,
         before_syscall_entry, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 0));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT,
         0, 0, 0,
         before_syscall_exit, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 1));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY,
         LTT_FIELD_TRAP_ID, 0, 0,
         before_trap_entry, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 2));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
         0, 0, 0,
         before_trap_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 3));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
         LTT_FIELD_IRQ_ID, 0, 0,
         before_irq_entry, NULL,
-        &g_array_index(hooks, LttvTraceHook, 4));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
         0, 0, 0,
         before_irq_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 5));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY,
         LTT_FIELD_SOFT_IRQ_ID, 0, 0,
         before_soft_irq_entry, NULL,
-        &g_array_index(hooks, LttvTraceHook, 6));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT,
         0, 0, 0,
         before_soft_irq_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 7));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_PROCESS, LTT_EVENT_SCHEDCHANGE,
         LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
         before_schedchange, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 8));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
+    g_array_set_size(hooks, hn);
 
     before_hooks = hooks;
 
     hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 11);
     g_array_set_size(hooks, 11);
+               hn=0;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_ENTRY,
         LTT_FIELD_SYSCALL_ID, 0, 0,
         after_syscall_entry, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 0));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT,
         0, 0, 0,
         after_syscall_exit, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 1));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY, 
         LTT_FIELD_TRAP_ID, 0, 0,
         after_trap_entry, NULL,
-        &g_array_index(hooks, LttvTraceHook, 2));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
         0, 0, 0,
         after_trap_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 3));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY, 
         LTT_FIELD_IRQ_ID, 0, 0,
         after_irq_entry, NULL,
-        &g_array_index(hooks, LttvTraceHook, 4));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
         0, 0, 0,
         after_irq_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 5));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY, 
         LTT_FIELD_SOFT_IRQ_ID, 0, 0,
         after_irq_entry, NULL,
-        &g_array_index(hooks, LttvTraceHook, 6));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT,
         0, 0, 0,
         after_soft_irq_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 7));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_PROCESS, LTT_EVENT_FORK, 
         LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, 0,
         process_fork, NULL, 
-        &g_array_index(hooks, LttvTraceHook, 8));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_PROCESS, LTT_EVENT_EXIT,
         LTT_FIELD_PID, 0, 0,
         process_exit, NULL,
-        &g_array_index(hooks, LttvTraceHook, 9));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
     
     ret = lttv_trace_find_hook(ts->parent.parent.t,
         LTT_FACILITY_PROCESS, LTT_EVENT_FREE,
         LTT_FIELD_PID, 0, 0,
         process_free, NULL,
-        &g_array_index(hooks, LttvTraceHook, 10));
-    g_assert(!ret);
+        &g_array_index(hooks, LttvTraceHook, hn++));
+    if(ret) hn--;
 
+    g_array_set_size(hooks, hn);
 
     after_hooks = hooks;
 
This page took 0.027607 seconds and 4 git commands to generate.