first fixes gcc 4.0
[lttv.git] / ltt / branches / poly / lttv / lttv / stats.c
index 678978d7fca773309dd956d40b839a34e9ef0409..6416e3001b3e350cf60a2f48152917c6160227a2 100644 (file)
@@ -47,9 +47,7 @@ GQuark
   LTTV_STATS_USE_COUNT,
   LTTV_STATS,
   LTTV_STATS_TRACEFILES,
-  LTTV_STATS_SUMMED;
-
-static GQuark
+  LTTV_STATS_SUMMED,
   LTTV_STATS_BEFORE_HOOKS,
   LTTV_STATS_AFTER_HOOKS;
 
@@ -58,8 +56,8 @@ find_event_tree(LttvTracefileStats *tfcs, GQuark pid_time, GQuark cpu,
     GQuark mode, GQuark sub_mode, LttvAttribute **events_tree, 
     LttvAttribute **event_types_tree);
 
-static void
-init(LttvTracesetStats *self, LttvTraceset *ts)
+
+static void lttv_stats_init(LttvTracesetStats *self)
 {
   guint i, j, nb_trace, nb_tracefile;
 
@@ -80,8 +78,7 @@ init(LttvTracesetStats *self, LttvTraceset *ts)
     *stats_tree,
     *tracefiles_stats;
 
-  LTTV_TRACESET_CONTEXT_CLASS(g_type_class_peek(LTTV_TRACESET_STATE_TYPE))->
-      init((LttvTracesetContext *)self, ts);
+  LttvTraceset *ts = self->parent.parent.ts;
 
   self->stats = lttv_attribute_find_subdir(
                       lttv_traceset_attribute(self->parent.parent.ts),
@@ -90,7 +87,7 @@ init(LttvTracesetStats *self, LttvTraceset *ts)
                       LTTV_STATS_USE_COUNT, 
                       LTTV_UINT, &v);
 
-  *(v.v_uint)++;
+  (*(v.v_uint))++;
   if(*(v.v_uint) == 1) { 
     g_assert(lttv_attribute_get_number(self->stats) == 0);
   }
@@ -107,7 +104,7 @@ init(LttvTracesetStats *self, LttvTraceset *ts)
     lttv_attribute_find(tcs->parent.parent.t_a, LTTV_STATS_USE_COUNT, 
         LTTV_UINT, &v);
 
-    *(v.v_uint)++;
+    (*(v.v_uint))++;
     if(*(v.v_uint) == 1) { 
       g_assert(lttv_attribute_get_number(tcs->stats) == 0);
     }
@@ -127,10 +124,10 @@ init(LttvTracesetStats *self, LttvTraceset *ts)
           &tfcs->current_event_types_tree);
     }
   }
+
 }
 
-static void
-fini(LttvTracesetStats *self)
+static void lttv_stats_fini(LttvTracesetStats *self)
 {
   guint i, j, nb_trace, nb_tracefile;
 
@@ -152,7 +149,7 @@ fini(LttvTracesetStats *self)
 
   lttv_attribute_find(self->parent.parent.ts_a, LTTV_STATS_USE_COUNT, 
         LTTV_UINT, &v);
-  *(v.v_uint)--;
+  (*(v.v_uint))--;
 
   if(*(v.v_uint) == 0) {
     lttv_attribute_remove_by_name(self->parent.parent.ts_a, LTTV_STATS);
@@ -167,7 +164,7 @@ fini(LttvTracesetStats *self)
 
     lttv_attribute_find(tcs->parent.parent.t_a, LTTV_STATS_USE_COUNT, 
         LTTV_UINT, &v);
-    *(v.v_uint)--;
+    (*(v.v_uint))--;
 
     if(*(v.v_uint) == 0) { 
       lttv_attribute_remove_by_name(tcs->parent.parent.t_a,LTTV_STATS);
@@ -189,6 +186,32 @@ fini(LttvTracesetStats *self)
       tfcs->current_event_types_tree = NULL;
     }
   }
+}
+
+
+void lttv_stats_reset(LttvTracesetStats *self)
+{
+  lttv_stats_fini(self);
+  lttv_stats_init(self);
+}
+
+
+
+static void
+init(LttvTracesetStats *self, LttvTraceset *ts)
+{
+  LTTV_TRACESET_CONTEXT_CLASS(g_type_class_peek(LTTV_TRACESET_STATE_TYPE))->
+      init((LttvTracesetContext *)self, ts);
+  
+  lttv_stats_init(self);
+}
+
+
+static void
+fini(LttvTracesetStats *self)
+{
+  lttv_stats_fini(self);
+
   LTTV_TRACESET_CONTEXT_CLASS(g_type_class_peek(LTTV_TRACESET_STATE_TYPE))->
       fini((LttvTracesetContext *)self);
 }
This page took 0.02373 seconds and 4 git commands to generate.