projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Babeltrace-wide warning fixes
[babeltrace.git]
/
formats
/
ctf
/
types
/
enum.c
diff --git
a/formats/ctf/types/enum.c
b/formats/ctf/types/enum.c
index a62d84e712ef6104802f3301197cdc85c859b3c8..e0bb545b72963b18fcb7f9c860c6309f00bfac25 100644
(file)
--- a/
formats/ctf/types/enum.c
+++ b/
formats/ctf/types/enum.c
@@
-20,8
+20,8
@@
#include <stdint.h>
#include <glib.h>
#include <stdint.h>
#include <glib.h>
-G
Quark
ctf_enum_read(struct stream_pos *pos,
- const struct type_class_enum *src)
+G
Array *
ctf_enum_read(struct stream_pos *pos,
+
const struct type_class_enum *src)
{
const struct type_class_integer *int_class = &src->p;
{
const struct type_class_integer *int_class = &src->p;
@@
-29,30
+29,33
@@
GQuark ctf_enum_read(struct stream_pos *pos,
uint64_t v;
v = ctf_uint_read(pos, int_class);
uint64_t v;
v = ctf_uint_read(pos, int_class);
- return enum_uint_to_quark(src, v);
+ return enum_uint_to_quark
_set
(src, v);
} else {
int64_t v;
v = ctf_int_read(pos, int_class);
} else {
int64_t v;
v = ctf_int_read(pos, int_class);
- return enum_int_to_quark(src, v);
+ return enum_int_to_quark
_set
(src, v);
}
}
}
}
+/*
+ * Arbitrarily choose the start of the first matching range.
+ */
void ctf_enum_write(struct stream_pos *pos,
void ctf_enum_write(struct stream_pos *pos,
-
const struct type_class_enum *dest,
-
GQuark q)
+ const struct type_class_enum *dest,
+ GQuark q)
{
const struct type_class_integer *int_class = &dest->p;
{
const struct type_class_integer *int_class = &dest->p;
+ GArray *array;
- if (!int_class->signedness) {
-
uint64_t v
;
+ array = enum_quark_to_range_set(dest, q);
+
assert(array)
;
- v = enum_quark_to_uint(dest, q);
+ if (!int_class->signedness) {
+ uint64_t v = g_array_index(array, struct enum_range, 0).start._unsigned;
ctf_uint_write(pos, int_class, v);
} else {
ctf_uint_write(pos, int_class, v);
} else {
- int64_t v;
-
- v = enum_quark_to_int(dest, q);
+ int64_t v = g_array_index(array, struct enum_range, 0).start._unsigned;
ctf_int_write(pos, int_class, v);
}
}
ctf_int_write(pos, int_class, v);
}
}
This page took
0.024095 seconds
and
4
git commands to generate.