Update enum pretty print
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 22 May 2011 16:52:59 +0000 (12:52 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 22 May 2011 16:52:59 +0000 (12:52 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
formats/ctf-text/types/enum.c

index 7a9a948d3e5ee0fbe080e79766578fbac2743391..4a3eac0feecfb93e7f401b4abbf7bee8ada932ab 100644 (file)
@@ -45,23 +45,27 @@ int ctf_text_enum_write(struct stream_pos *ppos, struct definition *definition)
        pos->field_nr = 0;
        fprintf(pos->fp, "(");
        pos->depth++;
-       ret = generic_rw(ppos, &integer_definition->p);
-       fprintf(pos->fp, ":");
-
        qs = enum_definition->value;
-       assert(qs);
 
-       pos->field_nr = 0;
-       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);
 
-               assert(str);
-               if (pos->field_nr++ != 0)
-                       fprintf(pos->fp, ",");
-               fprintf(pos->fp, " ");
-               fprintf(pos->fp, "%s", 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->field_nr = field_nr_saved;
This page took 0.024301 seconds and 4 git commands to generate.