Fix: convey enum value signedness into metadata
[lttng-tools.git] / src / bin / lttng-sessiond / ust-metadata.c
index e49f237437922c8b987ecb12898e89013ce31775..851fb99f4fed9679a7c609066c119a8bbb70991b 100644 (file)
@@ -304,14 +304,30 @@ int ust_metadata_enum_statedump(struct ust_registry_session *session,
                if (ret) {
                        goto end;
                }
-               if (entry->start == entry->end) {
+
+               if (entry->start.signedness) {
                        ret = lttng_metadata_printf(session,
-                                       "%d,\n",
-                                       entry->start);
+                               "%lld", (long long) entry->start.value);
                } else {
                        ret = lttng_metadata_printf(session,
-                                       "%d ... %d,\n",
-                                       entry->start, entry->end);
+                               "%llu", entry->start.value);
+               }
+               if (ret) {
+                       goto end;
+               }
+
+               if (entry->start.signedness == entry->end.signedness &&
+                               entry->start.value == entry->end.value) {
+                       ret = lttng_metadata_printf(session,
+                               ",\n");
+               } else {
+                       if (entry->end.signedness) {
+                               ret = lttng_metadata_printf(session,
+                                       " ... %lld,\n", (long long) entry->end.value);
+                       } else {
+                               ret = lttng_metadata_printf(session,
+                                       " ... %llu,\n", entry->end.value);
+                       }
                }
                if (ret) {
                        goto end;
This page took 0.02353 seconds and 4 git commands to generate.