X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fevent.c;h=395d46b114ef68d9ded7a7456f7f5f91effe99ec;hb=1d1df11d0582bef07ef2b33e8e82a75b08f32be4;hp=82d57ffcaa9a2468062b58ff815e748534a597d4;hpb=cf74a6f1dc8fdeb7f7216d1c22f89fff405f9df1;p=lttv.git diff --git a/ltt/branches/poly/ltt/event.c b/ltt/branches/poly/ltt/event.c index 82d57ffc..395d46b1 100644 --- a/ltt/branches/poly/ltt/event.c +++ b/ltt/branches/poly/ltt/event.c @@ -105,6 +105,10 @@ int ltt_event_refresh_fields(int offsetRoot,int offsetParent, size = offset2; }else size = fld->field_size; break; + + case LTT_UNION: + size = fld->field_size; + break; default: size = fld->field_size; @@ -223,21 +227,19 @@ LttField *ltt_event_field(LttEvent *e) { LttField * field; LttEventType * event_type = ltt_event_eventtype(e); - if(!event_type) return NULL; + if(unlikely(!event_type)) return NULL; field = event_type->root_field; - if(!field) return NULL; + if(unlikely(!field)) return NULL; //check if the field need refresh - if(e->which_block != event_type->latest_block || - e->which_event != event_type->latest_event){ + if(likely(e->which_block != event_type->latest_block || + e->which_event != event_type->latest_event)){ event_type->latest_block = e->which_block; event_type->latest_event = e->which_event; - if(field->field_fixed == 1)return field; - - //refresh the field - ltt_event_refresh_fields(0, 0, field, e->data); + if(unlikely(field->field_fixed != 1)) + ltt_event_refresh_fields(0, 0, field, e->data); } return field; }