Update pretty-print
[babeltrace.git] / types / types.c
index 2a9a50922c6f5b62c2cc212b513bffdbb98eb2ba..7369f30d09ffb5a272c3d54f14e5466ac3b005b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * declarations.c
+ * types.c
  *
  * BabelTrace - Converter
  *
@@ -255,6 +255,8 @@ void declaration_ref(struct declaration *declaration)
 
 void declaration_unref(struct declaration *declaration)
 {
+       if (!declaration)
+               return;
        if (!--declaration->ref)
                declaration->declaration_free(declaration);
 }
@@ -266,6 +268,8 @@ void definition_ref(struct definition *definition)
 
 void definition_unref(struct definition *definition)
 {
+       if (!definition)
+               return;
        if (!--definition->ref)
                definition->declaration->definition_free(definition);
 }
@@ -465,6 +469,30 @@ static struct definition_scope *
        return scope;
 }
 
+GQuark new_definition_path(struct definition_scope *parent_scope, GQuark field_name)
+{
+       GQuark path;
+       GString *str;
+       gchar *c_str;
+       int i;
+
+       str = g_string_new("");
+       if (parent_scope) {
+               for (i = 0; i < parent_scope->scope_path->len; i++) {
+                       GQuark q = g_array_index(parent_scope->scope_path,
+                                                GQuark, i);
+
+                       g_string_append(str, g_quark_to_string(q));
+                       g_string_append(str, ".");
+               }
+       }
+       g_string_append(str, g_quark_to_string(field_name));
+       c_str = g_string_free(str, FALSE);
+       path = g_quark_from_string(c_str);
+       g_free(c_str);
+       return path;
+}
+
 struct definition_scope *
        new_definition_scope(struct definition_scope *parent_scope,
                             GQuark field_name)
This page took 0.023478 seconds and 4 git commands to generate.