X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-probes.c;h=9b3bacc41f7c5559789f1501e7b47724dc8ae19e;hb=2df82195d140b39c40abfb43d526804a9d14d3da;hp=a09497f87ba444adc58a1765d0757a04fda7a809;hpb=0fdd0b8989a06910521827f82058f7100d9b6b8e;p=lttng-ust.git diff --git a/liblttng-ust/lttng-probes.c b/liblttng-ust/lttng-probes.c index a09497f8..9b3bacc4 100644 --- a/liblttng-ust/lttng-probes.c +++ b/liblttng-ust/lttng-probes.c @@ -226,7 +226,10 @@ void lttng_probe_unregister(struct lttng_probe_desc *desc) cds_list_del(&desc->head); else cds_list_del(&desc->lazy_init_head); - DBG("just unregistered probe %s", desc->provider); + + lttng_probe_provider_unregister_events(desc); + DBG("just unregistered probes of provider %s", desc->provider); + ust_unlock(); } @@ -382,15 +385,29 @@ int lttng_probes_get_field_list(struct lttng_ust_field_list *list) list_entry->field.type = LTTNG_UST_FIELD_STRING; break; case atype_array: - if (event_field->type.u.array.elem_type.atype != atype_integer - || event_field->type.u.array.elem_type.u.basic.integer.encoding == lttng_encode_none) + if (event_field->type.u.legacy.array.elem_type.atype != atype_integer + || event_field->type.u.legacy.array.elem_type.u.basic.integer.encoding == lttng_encode_none) + list_entry->field.type = LTTNG_UST_FIELD_OTHER; + else + list_entry->field.type = LTTNG_UST_FIELD_STRING; + break; + case atype_array_nestable: + if (event_field->type.u.array_nestable.elem_type->atype != atype_integer + || event_field->type.u.array_nestable.elem_type->u.integer.encoding == lttng_encode_none) list_entry->field.type = LTTNG_UST_FIELD_OTHER; else list_entry->field.type = LTTNG_UST_FIELD_STRING; break; case atype_sequence: - if (event_field->type.u.sequence.elem_type.atype != atype_integer - || event_field->type.u.sequence.elem_type.u.basic.integer.encoding == lttng_encode_none) + if (event_field->type.u.legacy.sequence.elem_type.atype != atype_integer + || event_field->type.u.legacy.sequence.elem_type.u.basic.integer.encoding == lttng_encode_none) + list_entry->field.type = LTTNG_UST_FIELD_OTHER; + else + list_entry->field.type = LTTNG_UST_FIELD_STRING; + break; + case atype_sequence_nestable: + if (event_field->type.u.sequence_nestable.elem_type->atype != atype_integer + || event_field->type.u.sequence_nestable.elem_type->u.integer.encoding == lttng_encode_none) list_entry->field.type = LTTNG_UST_FIELD_OTHER; else list_entry->field.type = LTTNG_UST_FIELD_STRING; @@ -398,7 +415,8 @@ int lttng_probes_get_field_list(struct lttng_ust_field_list *list) case atype_float: list_entry->field.type = LTTNG_UST_FIELD_FLOAT; break; - case atype_enum: + case atype_enum: /* Fall-through */ + case atype_enum_nestable: list_entry->field.type = LTTNG_UST_FIELD_ENUM; break; default: