* - remove the idle expressions in the tree
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
//#define TEST
#ifdef TEST
#include <time.h>
*/
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);
}
*/
LttvFilter*
lttv_filter_clone(const LttvFilter* filter) {
-
+
+ if(!filter) return NULL;
+
LttvFilter* newfilter = g_new(LttvFilter,1);
strcpy(newfilter->expression,filter->expression);
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;
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);
}
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
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;
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;