X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=types%2Fsequence.c;h=a719ee99b2dce596bad6bfe3ce600cc8c209c5fc;hp=8db1ee0466b66b2bb7d661bb6245e4f2db3f9f3f;hb=ff00cad2a14ea6dad073761b3dbb4aaa259723d0;hpb=f66259163f060ada8d0fee348857c968e338ea40 diff --git a/types/sequence.c b/types/sequence.c index 8db1ee04..a719ee99 100644 --- a/types/sequence.c +++ b/types/sequence.c @@ -25,7 +25,8 @@ static struct definition *_sequence_definition_new(struct declaration *declaration, - struct definition_scope *parent_scope); + struct definition_scope *parent_scope, + GQuark field_name, int index); static void _sequence_definition_free(struct definition *definition); @@ -66,7 +67,7 @@ void _sequence_declaration_free(struct declaration *declaration) } struct declaration_sequence * - sequence_declaration_new(const char *name, struct declaration_integer *len_declaration, + sequence_declaration_new(struct declaration_integer *len_declaration, struct declaration *elem_declaration, struct declaration_scope *parent_scope) { @@ -82,7 +83,6 @@ struct declaration_sequence * sequence_declaration->elem = elem_declaration; sequence_declaration->scope = new_declaration_scope(parent_scope); declaration->id = CTF_TYPE_SEQUENCE; - declaration->name = g_quark_from_string(name); declaration->alignment = max(len_declaration->p.alignment, elem_declaration->alignment); declaration->copy = sequence_copy; declaration->declaration_free = _sequence_declaration_free; @@ -94,7 +94,8 @@ struct declaration_sequence * static struct definition *_sequence_definition_new(struct declaration *declaration, - struct definition_scope *parent_scope) + struct definition_scope *parent_scope, + GQuark field_name, int index) { struct declaration_sequence *sequence_declaration = container_of(declaration, struct declaration_sequence, p); @@ -106,14 +107,17 @@ struct definition *_sequence_definition_new(struct declaration *declaration, sequence->p.declaration = declaration; sequence->declaration = sequence_declaration; sequence->p.ref = 1; - sequence->scope = new_definition_scope(parent_scope); + sequence->p.index = index; + sequence->scope = new_definition_scope(parent_scope, field_name); len_parent = sequence_declaration->len_declaration->p.definition_new(&sequence_declaration->len_declaration->p, - parent_scope); + parent_scope, + g_quark_from_static_string("length"), 0); sequence->len = container_of(len_parent, struct definition_integer, p); sequence->current_element.definition = sequence_declaration->elem->definition_new(sequence_declaration->elem, - parent_scope); + parent_scope, + g_quark_from_static_string("[]"), 1); return &sequence->p; }