ir: support optional parameters in bt_ctf_field_type_variant_get_field
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 13 May 2015 18:07:37 +0000 (14:07 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 13 May 2015 18:07:37 +0000 (14:07 -0400)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
formats/ctf/ir/event-types.c
tests/lib/test_ctf_writer.c

index c03f0b7758f578b81e3c300118f94a9c7c96b34f..fabaea51ca769c23dcebea2bd5baaef5df684ae3 100644 (file)
@@ -1487,8 +1487,7 @@ int bt_ctf_field_type_variant_get_field(struct bt_ctf_field_type *type,
        struct structure_field *field;
        int ret = 0;
 
-       if (!type || index < 0 || !field_name || !field_type ||
-               (type->declaration->id != CTF_TYPE_VARIANT)) {
+       if (!type || index < 0 || (type->declaration->id != CTF_TYPE_VARIANT)) {
                ret = -1;
                goto end;
        }
@@ -1501,9 +1500,13 @@ int bt_ctf_field_type_variant_get_field(struct bt_ctf_field_type *type,
        }
 
        field = g_ptr_array_index(variant->fields, index);
-       *field_type = field->type;
-       bt_ctf_field_type_get(field->type);
-       *field_name = g_quark_to_string(field->name);
+       if (field_type) {
+               *field_type = field->type;
+               bt_ctf_field_type_get(field->type);
+       }
+       if (field_name) {
+               *field_name = g_quark_to_string(field->name);
+       }
 end:
        return ret;
 }
index 47096354821fb410730ed8d2c0dfac00d455c41c..368c1e9fc20a12a9584f6ea5b4814380ffd8f549 100644 (file)
@@ -883,9 +883,10 @@ void append_complex_event(struct bt_ctf_stream_class *stream_class,
 
        ok(bt_ctf_field_type_variant_get_field(NULL, &ret_string, &ret_field_type, 0) < 0,
                "bt_ctf_field_type_variant_get_field handles a NULL type correctly");
-       ok(bt_ctf_field_type_variant_get_field(variant_type, NULL, &ret_field_type, 0) < 0,
+       ok(bt_ctf_field_type_variant_get_field(variant_type, NULL, &ret_field_type, 0) == 0,
                "bt_ctf_field_type_variant_get_field handles a NULL field name correctly");
-       ok(bt_ctf_field_type_variant_get_field(variant_type, &ret_string, NULL, 0) < 0,
+       bt_ctf_field_type_put(ret_field_type);
+       ok(bt_ctf_field_type_variant_get_field(variant_type, &ret_string, NULL, 0) == 0,
                "bt_ctf_field_type_variant_get_field handles a NULL field type correctly");
        ok(bt_ctf_field_type_variant_get_field(variant_type, &ret_string, &ret_field_type, 200) < 0,
                "bt_ctf_field_type_variant_get_field handles an invalid index correctly");
This page took 0.027742 seconds and 4 git commands to generate.