Fix missing header
[babeltrace.git] / types / variant.c
index 2ab14a21cd4db6e9ecc031289553ff16702ed2d2..460b2fb2b6bb3944bd77d17c1f4a735535463da8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-* variant.c
+ * variant.c
  *
  * BabelTrace - Variant Type Converter
  *
@@ -27,25 +27,14 @@ struct definition *_variant_definition_new(struct declaration *declaration,
 static
 void _variant_definition_free(struct definition *definition);
 
-void variant_copy(struct stream_pos *dest, const struct format *fdest, 
-                 struct stream_pos *src, const struct format *fsrc,
-                 struct definition *definition)
+void variant_rw(struct stream_pos *ppos, struct definition *definition)
 {
-       struct definition_variant *variant =
+       struct definition_variant *variant_definition =
                container_of(definition, struct definition_variant, p);
-       struct declaration_variant *variant_declaration = variant->declaration;
        struct field *field;
-       struct declaration *field_declaration;
-
-       fsrc->variant_begin(src, variant_declaration);
-       fdest->variant_begin(dest, variant_declaration);
-
-       field = variant_get_current_field(variant);
-       field_declaration = field->definition->declaration;
-       field_declaration->copy(dest, fdest, src, fsrc, field->definition);
 
-       fsrc->variant_end(src, variant_declaration);
-       fdest->variant_end(dest, variant_declaration);
+       field = variant_get_current_field(variant_definition);
+       generic_rw(ppos, field->definition);
 }
 
 static
@@ -68,7 +57,7 @@ void _untagged_variant_declaration_free(struct declaration *declaration)
        g_free(untagged_variant_declaration);
 }
 
-struct declaration_untagged_variant *untagged_variant_declaration_new(const char *name,
+struct declaration_untagged_variant *untagged_variant_declaration_new(
                                      struct declaration_scope *parent_scope)
 {
        struct declaration_untagged_variant *untagged_variant_declaration;
@@ -83,9 +72,7 @@ struct declaration_untagged_variant *untagged_variant_declaration_new(const char
                                                 DEFAULT_NR_STRUCT_FIELDS);
        untagged_variant_declaration->scope = new_declaration_scope(parent_scope);
        declaration->id = CTF_TYPE_UNTAGGED_VARIANT;
-       declaration->name = g_quark_from_string(name);
        declaration->alignment = 1;
-       declaration->copy = NULL;
        declaration->declaration_free = _untagged_variant_declaration_free;
        declaration->definition_new = NULL;
        declaration->definition_free = NULL;
@@ -116,7 +103,6 @@ struct declaration_variant *
        append_scope_path(tag, variant_declaration->tag_name);
        declaration->id = CTF_TYPE_VARIANT;
        declaration->alignment = 1;
-       declaration->copy = variant_copy;
        declaration->declaration_free = _variant_declaration_free;
        declaration->definition_new = _variant_definition_new;
        declaration->definition_free = _variant_definition_free;
This page took 0.023311 seconds and 4 git commands to generate.