#include <lttv/filter.h>
#include <ltt/trace.h>
+#include <ltt/type.h>
#include <stdlib.h>
#include <string.h>
/* cannot specify number with more than one '.' */
if(is_double) return FALSE;
else is_double = TRUE;
- t.tv_sec = atoi(v);
+ t.tv_sec = atoi(v->str);
g_string_free(v,TRUE);
v = g_string_new("");
} else g_string_append_c(v,value[i]);
}
/* number can be integer or double */
- if(is_double) t.tv_nsec = atoi(v);
- else t.tv_sec = atoi(v);
+ if(is_double) t.tv_nsec = atoi(v->str);
+ else t.tv_sec = atoi(v->str);
g_string_free(v,TRUE);
const LttEvent* event,
const LttTracefile* tracefile,
const LttTrace* trace,
- const LttvProcessState* state,
const LttvTracefileContext* context
/*,...*/)
{
*/
gboolean lresult = FALSE, rresult = FALSE;
+
+ LttvProcessState* state;
+
+ if(LTTV_IS_TRACESET_STATE(context)) {
+ guint cpu = ltt_tracefile_num(context->tf);
+ LttvTraceState *ts = (LttvTraceState*)context->t_context;
+ state = ts->running_process[cpu];
+ } else {
+ state = NULL;
+ }
/*
* Parse left branch
*/
if(t->left == LTTV_TREE_NODE) {
- lresult = lttv_filter_tree_parse(t->l_child.t,event,tracefile,trace,state,context);
+ lresult = lttv_filter_tree_parse(t->l_child.t,event,tracefile,trace,context);
}
else if(t->left == LTTV_TREE_LEAF) {
lresult = lttv_filter_tree_parse_branch(t->l_child.leaf,event,tracefile,trace,state,context);
* Parse right branch
*/
if(t->right == LTTV_TREE_NODE) {
- rresult = lttv_filter_tree_parse(t->r_child.t,event,tracefile,trace,state,context);
+ rresult = lttv_filter_tree_parse(t->r_child.t,event,tracefile,trace,context);
}
else if(t->right == LTTV_TREE_LEAF) {
rresult = lttv_filter_tree_parse_branch(t->r_child.leaf,event,tracefile,trace,state,context);
case LTTV_FILTER_STATE_CPU:
if(context == NULL) return TRUE;
else {
- /* FIXME: not sure of that one */
- GQuark quark = ((LttvTracefileState*)context)->cpu_name;
- return se->op((gpointer)&quark,v);
+ /* FIXME: not sure of that one Mathieu : fixed.*/
+ // GQuark quark = ((LttvTracefileState*)context)->cpu_name;
+ // return se->op((gpointer)&quark,v);
+ if(state == NULL) return TRUE;
+ else return se->op((gpointer)&state->cpu,v);
}
break;
case LTTV_FILTER_EVENT_NAME: