X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=bindings%2Fpython%2Fpython-complements.c;h=5c65fb0f0e37f2044a0518faf95d798fff364ffa;hp=53b616b4ca42740010118f63101281f0e4b7517e;hb=cebae8c3f3b5dba2af88242c8f17bf44fe63c715;hpb=3c2ce778cc0d5e5be91e2fd1d176365a2ad65aa3 diff --git a/bindings/python/python-complements.c b/bindings/python/python-complements.c index 53b616b4..5c65fb0f 100644 --- a/bindings/python/python-complements.c +++ b/bindings/python/python-complements.c @@ -46,19 +46,17 @@ void _bt_file_close(FILE *fp) /* ctf-field-list */ struct bt_definition **_bt_python_field_listcaller( const struct bt_ctf_event *ctf_event, - const struct bt_definition *scope) + const struct bt_definition *scope, + unsigned int *len) { struct bt_definition **list; - unsigned int count; int ret; ret = bt_ctf_get_field_list(ctf_event, scope, - (const struct bt_definition * const **)&list, &count); + (const struct bt_definition * const **)&list, len); if (ret < 0) /* For python to know an error occured */ list = NULL; - else /* For python to know the end is reached */ - list[count] = NULL; return list; } @@ -71,19 +69,18 @@ struct bt_definition *_bt_python_field_one_from_list( /* event_decl_list */ struct bt_ctf_event_decl **_bt_python_event_decl_listcaller( - int handle_id, struct bt_context *ctx) + int handle_id, + struct bt_context *ctx, + unsigned int *len) { struct bt_ctf_event_decl **list; - unsigned int count; int ret; ret = bt_ctf_get_event_decl_list(handle_id, ctx, - (struct bt_ctf_event_decl * const **)&list, &count); + (struct bt_ctf_event_decl * const **)&list, len); if (ret < 0) /* For python to know an error occured */ list = NULL; - else /* For python to know the end is reached */ - list[count] = NULL; return list; } @@ -97,19 +94,17 @@ struct bt_ctf_event_decl *_bt_python_decl_one_from_list( /* decl_fields */ struct bt_ctf_field_decl **_by_python_field_decl_listcaller( struct bt_ctf_event_decl *event_decl, - enum bt_ctf_scope scope) + enum bt_ctf_scope scope, + unsigned int *len) { struct bt_ctf_field_decl **list; - unsigned int count; int ret; ret = bt_ctf_get_decl_fields(event_decl, scope, - (const struct bt_ctf_field_decl * const **)&list, &count); + (const struct bt_ctf_field_decl * const **)&list, len); if (ret < 0) /* For python to know an error occured */ list = NULL; - else /* For python to know the end is reached */ - list[count] = NULL; return list; } @@ -137,3 +132,14 @@ struct definition_array *_bt_python_get_array_from_def( end: return array; } + +struct definition_sequence *_bt_python_get_sequence_from_def( + struct bt_definition *field) +{ + if (field && bt_ctf_field_type( + bt_ctf_get_decl_from_def(field)) == CTF_TYPE_SEQUENCE) { + return container_of(field, struct definition_sequence, p); + } + + return NULL; +}