projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Babeltrace ctf-text duplicated error message
[babeltrace.git]
/
formats
/
ctf-text
/
types
/
enum.c
diff --git
a/formats/ctf-text/types/enum.c
b/formats/ctf-text/types/enum.c
index 0cb902180b3254597cc1237f9fc106e45a3ef287..b973d494b195dcd67d65931979b3d28dc06996a7 100644
(file)
--- a/
formats/ctf-text/types/enum.c
+++ b/
formats/ctf-text/types/enum.c
@@
-3,7
+3,9
@@
*
* Enumeration mapping strings (quarks) from/to integers.
*
*
* Enumeration mapping strings (quarks) from/to integers.
*
- * Copyright 2010, 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
+ *
+ * Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@
-29,36
+31,48
@@
int ctf_text_enum_write(struct stream_pos *ppos, struct definition *definition)
struct ctf_text_stream_pos *pos = ctf_text_pos(ppos);
GArray *qs;
int i, ret;
struct ctf_text_stream_pos *pos = ctf_text_pos(ppos);
GArray *qs;
int i, ret;
+ int field_nr_saved;
+
+ if (!print_field(definition))
+ return 0;
if (pos->dummy)
return 0;
if (pos->dummy)
return 0;
- if (
definition->index != 0 && definition->index != INT_MAX
)
+ if (
pos->field_nr++ != 0
)
fprintf(pos->fp, ",");
fprintf(pos->fp, ",");
- if (definition->index != INT_MAX)
- fprintf(pos->fp, " ");
+ fprintf(pos->fp, " ");
if (pos->print_names)
fprintf(pos->fp, "%s = ",
if (pos->print_names)
fprintf(pos->fp, "%s = ",
-
g_quark_to_string(definition->name
));
+
rem_(g_quark_to_string(definition->name)
));
+ field_nr_saved = pos->field_nr;
+ pos->field_nr = 0;
fprintf(pos->fp, "(");
pos->depth++;
fprintf(pos->fp, "(");
pos->depth++;
- ret = generic_rw(ppos, &integer_definition->p);
- fprintf(pos->fp, " :");
-
qs = enum_definition->value;
qs = enum_definition->value;
- assert(qs);
- for (i = 0; i < qs->len; i++) {
- GQuark q = g_array_index(qs, GQuark, i);
- const char *str = g_quark_to_string(q);
+ if (qs) {
+ for (i = 0; i < qs->len; i++) {
+ GQuark q = g_array_index(qs, GQuark, i);
+ const char *str = g_quark_to_string(q);
- if (i != 0)
- fprintf(pos->fp, ",");
- fprintf(pos->fp, " ");
- fprintf(pos->fp, "%s\n", str);
+ assert(str);
+ if (pos->field_nr++ != 0)
+ fprintf(pos->fp, ",");
+ fprintf(pos->fp, " ");
+ fprintf(pos->fp, "%s", str);
+ }
+ } else {
+ fprintf(pos->fp, " <unknown>");
}
}
+
+ pos->field_nr = 0;
+ fprintf(pos->fp, " :");
+ ret = generic_rw(ppos, &integer_definition->p);
+
pos->depth--;
fprintf(pos->fp, " )");
pos->depth--;
fprintf(pos->fp, " )");
+ pos->field_nr = field_nr_saved;
return ret;
}
return ret;
}
This page took
0.024296 seconds
and
4
git commands to generate.