lib: trace IR, values: reset pointers to `NULL` on destruction
[babeltrace.git] / lib / trace-ir / clock-class.c
index c8e5f3fdbeee85a3a39840f26b5caadc3b428497..4cfd01c852128e46eb178375b28298a6557891d4 100644 (file)
@@ -1,8 +1,4 @@
 /*
- * clock-class.c
- *
- * Babeltrace trace IR - Clock class
- *
  * Copyright 2013, 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
  * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
@@ -34,7 +30,7 @@
 #include <babeltrace/trace-ir/clock-class-internal.h>
 #include <babeltrace/trace-ir/clock-value-internal.h>
 #include <babeltrace/trace-ir/utils-internal.h>
-#include <babeltrace/ref.h>
+#include <babeltrace/object.h>
 #include <babeltrace/compiler-internal.h>
 #include <babeltrace/types.h>
 #include <babeltrace/compat/string-internal.h>
@@ -54,10 +50,14 @@ void destroy_clock_class(struct bt_object *obj)
 
        if (clock_class->name.str) {
                g_string_free(clock_class->name.str, TRUE);
+               clock_class->name.str = NULL;
+               clock_class->name.value = NULL;
        }
 
        if (clock_class->description.str) {
                g_string_free(clock_class->description.str, TRUE);
+               clock_class->description.str = NULL;
+               clock_class->description.value = NULL;
        }
 
        bt_object_pool_finalize(&clock_class->cv_pool);
@@ -106,7 +106,7 @@ end:
        return;
 }
 
-struct bt_clock_class *bt_clock_class_create(void)
+struct bt_private_clock_class *bt_private_clock_class_create(void)
 {
        int ret;
        struct bt_clock_class *clock_class = NULL;
@@ -150,10 +150,10 @@ struct bt_clock_class *bt_clock_class_create(void)
        goto end;
 
 error:
-       BT_PUT(clock_class);
+       BT_OBJECT_PUT_REF_AND_RESET(clock_class);
 
 end:
-       return clock_class;
+       return (void *) clock_class;
 }
 
 const char *bt_clock_class_get_name(
@@ -163,9 +163,12 @@ const char *bt_clock_class_get_name(
        return clock_class->name.value;
 }
 
-int bt_clock_class_set_name(struct bt_clock_class *clock_class,
+int bt_private_clock_class_set_name(
+               struct bt_private_clock_class *priv_clock_class,
                const char *name)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_NON_NULL(name, "Name");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
@@ -181,9 +184,12 @@ const char *bt_clock_class_get_description(struct bt_clock_class *clock_class)
        return clock_class->description.value;
 }
 
-int bt_clock_class_set_description(struct bt_clock_class *clock_class,
+int bt_private_clock_class_set_description(
+               struct bt_private_clock_class *priv_clock_class,
                const char *descr)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_NON_NULL(descr, "Description");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
@@ -200,9 +206,12 @@ uint64_t bt_clock_class_get_frequency(struct bt_clock_class *clock_class)
        return clock_class->frequency;
 }
 
-int bt_clock_class_set_frequency(struct bt_clock_class *clock_class,
+void bt_private_clock_class_set_frequency(
+               struct bt_private_clock_class *priv_clock_class,
                uint64_t frequency)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
        BT_ASSERT_PRE(frequency != UINT64_C(-1) && frequency != 0,
@@ -214,7 +223,6 @@ int bt_clock_class_set_frequency(struct bt_clock_class *clock_class,
        clock_class->frequency = frequency;
        set_base_offset(clock_class);
        BT_LIB_LOGV("Set clock class's frequency: %!+K", clock_class);
-       return 0;
 }
 
 uint64_t bt_clock_class_get_precision(struct bt_clock_class *clock_class)
@@ -223,9 +231,12 @@ uint64_t bt_clock_class_get_precision(struct bt_clock_class *clock_class)
        return clock_class->precision;
 }
 
-int bt_clock_class_set_precision(struct bt_clock_class *clock_class,
+void bt_private_clock_class_set_precision(
+               struct bt_private_clock_class *priv_clock_class,
                uint64_t precision)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
        BT_ASSERT_PRE(precision != UINT64_C(-1),
@@ -233,7 +244,6 @@ int bt_clock_class_set_precision(struct bt_clock_class *clock_class,
                clock_class, precision);
        clock_class->precision = precision;
        BT_LIB_LOGV("Set clock class's precision: %!+K", clock_class);
-       return 0;
 }
 
 void bt_clock_class_get_offset(struct bt_clock_class *clock_class,
@@ -246,9 +256,12 @@ void bt_clock_class_get_offset(struct bt_clock_class *clock_class,
        *cycles = clock_class->offset_cycles;
 }
 
-int bt_clock_class_set_offset(struct bt_clock_class *clock_class,
+void bt_private_clock_class_set_offset(
+               struct bt_private_clock_class *priv_clock_class,
                int64_t seconds, uint64_t cycles)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
        BT_ASSERT_PRE(cycles < clock_class->frequency,
@@ -258,7 +271,6 @@ int bt_clock_class_set_offset(struct bt_clock_class *clock_class,
        clock_class->offset_cycles = cycles;
        set_base_offset(clock_class);
        BT_LIB_LOGV("Set clock class's offset: %!+K", clock_class);
-       return 0;
 }
 
 bt_bool bt_clock_class_is_absolute(struct bt_clock_class *clock_class)
@@ -267,15 +279,17 @@ bt_bool bt_clock_class_is_absolute(struct bt_clock_class *clock_class)
        return (bool) clock_class->is_absolute;
 }
 
-int bt_clock_class_set_is_absolute(struct bt_clock_class *clock_class,
+void bt_private_clock_class_set_is_absolute(
+               struct bt_private_clock_class *priv_clock_class,
                bt_bool is_absolute)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
        clock_class->is_absolute = (bool) is_absolute;
        BT_LIB_LOGV("Set clock class's absolute property: %!+K",
                clock_class);
-       return 0;
 }
 
 bt_uuid bt_clock_class_get_uuid(struct bt_clock_class *clock_class)
@@ -284,16 +298,18 @@ bt_uuid bt_clock_class_get_uuid(struct bt_clock_class *clock_class)
        return clock_class->uuid.value;
 }
 
-int bt_clock_class_set_uuid(struct bt_clock_class *clock_class,
+void bt_private_clock_class_set_uuid(
+               struct bt_private_clock_class *priv_clock_class,
                bt_uuid uuid)
 {
+       struct bt_clock_class *clock_class = (void *) priv_clock_class;
+
        BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class");
        BT_ASSERT_PRE_NON_NULL(uuid, "UUID");
        BT_ASSERT_PRE_CLOCK_CLASS_HOT(clock_class);
        memcpy(clock_class->uuid.uuid, uuid, BABELTRACE_UUID_LEN);
        clock_class->uuid.value = clock_class->uuid.uuid;
        BT_LIB_LOGV("Set clock class's UUID: %!+K", clock_class);
-       return 0;
 }
 
 BT_HIDDEN
This page took 0.03131 seconds and 4 git commands to generate.