CTF metadata structure generation code finished
[babeltrace.git] / types / sequence.c
index 8db1ee0466b66b2bb7d661bb6245e4f2db3f9f3f..a719ee99b2dce596bad6bfe3ce600cc8c209c5fc 100644 (file)
@@ -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;
 }
 
This page took 0.02432 seconds and 4 git commands to generate.