X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=types%2Fenum.c;h=daf135076e00f1684dcb47bba611affc57cbbfc2;hp=bfed769de4889cb8e55bc6c80ccc9ffd3c645cc7;hb=47e0f2e23aef98a584bf964754ab1e29c2897cfb;hpb=be85c1c7633af07e35db7b415d6ee8447c30e80a diff --git a/types/enum.c b/types/enum.c index bfed769d..daf13507 100644 --- a/types/enum.c +++ b/types/enum.c @@ -233,9 +233,8 @@ void enum_unsigned_insert_value_to_quark_set(struct type_class_enum *enum_class, GArray *enum_quark_to_range_set(const struct type_class_enum *enum_class, GQuark q) { - gconstpointer v = g_hash_table_lookup(enum_class->table.quark_to_range_set, - (gconstpointer) (unsigned long) q); - return (GArray *) v; + return g_hash_table_lookup(enum_class->table.quark_to_range_set, + (gconstpointer) (unsigned long) q); } static @@ -339,9 +338,17 @@ void enum_copy(struct stream_pos *dest, const struct format *fdest, { struct type_class_enum *enum_class = container_of(type_class, struct type_class_enum, p.p); + GArray *array; GQuark v; - v = fsrc->enum_read(src, enum_class); + array = fsrc->enum_read(src, enum_class); + assert(array); + /* + * Arbitrarily choose the first one. + * TODO: use direct underlying type read/write intead. Not doing it for + * now to test enum read and write code. + */ + v = g_array_index(array, GQuark, 0); return fdest->enum_write(dest, enum_class, v); }