Add environment (env {}) parser-level support
[babeltrace.git] / formats / ctf / metadata / ctf-visitor-parent-links.c
index 0258fd63591276fff956ebc733c6258c0e0e7aa6..821083ebd1e77bff1a607f7f7cf1d21dc1ac926c 100644 (file)
@@ -24,7 +24,7 @@
 #include <glib.h>
 #include <inttypes.h>
 #include <errno.h>
-#include <babeltrace/babeltrace.h>
+#include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/list.h>
 #include "ctf-scanner.h"
 #include "ctf-parser.h"
@@ -205,6 +205,12 @@ 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.root.clock, siblings) {
+                       iter->parent = node;
+                       ret = ctf_visitor_parent_links(fd, depth + 1, iter);
+                       if (ret)
+                               return ret;
+               }
                break;
 
        case NODE_EVENT:
@@ -223,6 +229,14 @@ int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node)
                                return ret;
                }
                break;
+       case NODE_ENV:
+               cds_list_for_each_entry(iter, &node->u.env.declaration_list, siblings) {
+                       iter->parent = node;
+                       ret = ctf_visitor_parent_links(fd, depth + 1, iter);
+                       if (ret)
+                               return ret;
+               }
+               break;
        case NODE_TRACE:
                cds_list_for_each_entry(iter, &node->u.trace.declaration_list, siblings) {
                        iter->parent = node;
@@ -231,6 +245,14 @@ int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node)
                                return ret;
                }
                break;
+       case NODE_CLOCK:
+               cds_list_for_each_entry(iter, &node->u.clock.declaration_list, siblings) {
+                       iter->parent = node;
+                       ret = ctf_visitor_parent_links(fd, depth + 1, iter);
+                       if (ret)
+                               return ret;
+               }
+               break;
 
        case NODE_CTF_EXPRESSION:
                depth++;
This page took 0.023724 seconds and 4 git commands to generate.