X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ffilter.c;h=e837068cb2bfc7ba8091a5ca4ac4932d463ba993;hb=d052ffc307fc3321aeec9fc318ca300558dbc5f3;hp=604339c9b83d10d26f597e866885c1d122791cb7;hpb=72911c5d83d73a7dbe06c505fb7723b0713066fc;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/filter.c b/ltt/branches/poly/lttv/lttv/filter.c index 604339c9..e837068c 100644 --- a/ltt/branches/poly/lttv/lttv/filter.c +++ b/ltt/branches/poly/lttv/lttv/filter.c @@ -63,6 +63,10 @@ * - remove the idle expressions in the tree */ +#ifdef HAVE_CONFIG_H +#include +#endif + //#define TEST #ifdef TEST #include @@ -588,7 +592,7 @@ gboolean lttv_apply_op_eq_string(const gpointer v1, LttvFieldValue v2) { */ gboolean lttv_apply_op_eq_quark(const gpointer v1, LttvFieldValue v2) { GQuark* r = (GQuark*) v1; - g_print("v1:%i v2:%i\n",*r,v2.v_uint32); +// g_print("v1:%i v2:%i\n",*r,v2.v_uint32); return (*r == v2.v_uint32); } @@ -1042,7 +1046,9 @@ lttv_filter_tree_clone(const LttvFilterTree* tree) { */ LttvFilter* lttv_filter_clone(const LttvFilter* filter) { - + + if(!filter) return NULL; + LttvFilter* newfilter = g_new(LttvFilter,1); strcpy(newfilter->expression,filter->expression); @@ -1190,15 +1196,8 @@ lttv_filter_update(LttvFilter* filter) { t3->node = LTTV_LOGICAL_NOT; t2->left = LTTV_TREE_NODE; t2->l_child.t = t3; -// g_print("%i\n",t2->left); -// g_print("*************************************\n"); -// lttv_print_tree(t2,0); -// g_print("*************************************\n"); -// lttv_print_tree(t3,0); -// g_print("*************************************\n"); t2 = t3; not = 0; -// g_print("ici t1:%p t2:%p t3:%p\n",t1,t2,t3); } if(subtree != NULL) { /* append subtree to current tree */ t2->left = LTTV_TREE_NODE; @@ -1493,8 +1492,12 @@ lttv_filter_update(LttvFilter* filter) { void lttv_filter_destroy(LttvFilter* filter) { - g_free(filter->expression); - lttv_filter_tree_destroy(filter->head); + if(!filter) return; + + if(filter->expression) + g_free(filter->expression); + if(filter->head) + lttv_filter_tree_destroy(filter->head); g_free(filter); } @@ -1673,7 +1676,8 @@ lttv_filter_tree_parse( else if(t->right == LTTV_TREE_LEAF) { rresult = lttv_filter_tree_parse_branch(t->r_child.leaf,event,tracefile,trace,state,context); } - + + /* * Apply and return the * logical link between the @@ -1722,16 +1726,14 @@ lttv_filter_tree_parse_branch( case LTTV_FILTER_TRACE_NAME: if(trace == NULL) return TRUE; else { - char* trace_name = ltt_trace_name(trace); - GQuark quark = g_quark_from_string(trace_name); + GQuark quark = ltt_trace_name(trace); return se->op((gpointer)&quark,v); } break; case LTTV_FILTER_TRACEFILE_NAME: if(tracefile == NULL) return TRUE; else { - char* tracefile_name = ltt_tracefile_name(tracefile); - GQuark quark = g_quark_from_string(tracefile_name); + GQuark quark = ltt_tracefile_name(tracefile); return se->op((gpointer)&quark,v); } break; @@ -1790,8 +1792,7 @@ lttv_filter_tree_parse_branch( else { LttEventType* et; et = ltt_event_eventtype(event); - char* event_name = ltt_eventtype_name(et); - GQuark quark = g_quark_from_string(event_name); + GQuark quark = ltt_eventtype_name(et); return se->op((gpointer)&quark,v); } break;