Add structure align() attribute, fix empty string support in definition paths
[babeltrace.git] / formats / ctf / metadata / ctf-visitor-parent-links.c
index 9337dd49b832e9a053f568d6f3b96887ba04bd23..ce2fb0d9b19cd38c760b536529fa45d602111f7b 100644 (file)
@@ -24,6 +24,7 @@
 #include <glib.h>
 #include <inttypes.h>
 #include <errno.h>
+#include <babeltrace/babeltrace.h>
 #include <babeltrace/list.h>
 #include "ctf-scanner.h"
 #include "ctf-parser.h"
@@ -358,9 +359,11 @@ int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node)
                break;
        case NODE_ENUM:
                depth++;
-               ret = ctf_visitor_parent_links(fd, depth + 1, node->u._enum.container_type);
-               if (ret)
-                       return ret;
+               if (node->u._enum.container_type) {
+                       ret = ctf_visitor_parent_links(fd, depth + 1, node->u._enum.container_type);
+                       if (ret)
+                               return ret;
+               }
 
                cds_list_for_each_entry(iter, &node->u._enum.enumerator_list, siblings) {
                        iter->parent = node;
@@ -398,6 +401,13 @@ int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node)
                        if (ret)
                                return ret;
                }
+               cds_list_for_each_entry(iter, &node->u._struct.min_align,
+                                       siblings) {
+                       iter->parent = node;
+                       ret = ctf_visitor_parent_links(fd, depth + 1, iter);
+                       if (ret)
+                               return ret;
+               }
                break;
 
        case NODE_UNKNOWN:
This page took 0.023427 seconds and 4 git commands to generate.