- if (var && var->value) {
- g_string_free(var->value, TRUE);
+ if (var && var->value.string) {
+ g_string_free(var->value.string, TRUE);
+ }
+
+ g_free(var);
+ return ret;
+}
+
+int bt_ctf_trace_add_environment_field_integer(struct bt_ctf_trace *trace,
+ const char *name,
+ int64_t value)
+{
+ struct environment_variable *var = NULL;
+ int ret = 0;
+
+ if (!trace || !name) {
+ ret = -1;
+ goto error;
+ }
+
+ var = g_new0(struct environment_variable, 1);
+ if (!var) {
+ ret = -1;
+ goto error;
+ }
+
+ var->type = BT_ENVIRONMENT_FIELD_TYPE_INTEGER;
+ var->name = g_string_new(name);
+ var->value.integer = value;
+ if (!var->name) {
+ ret = -1;
+ goto error;
+ }
+
+ g_ptr_array_add(trace->environment, var);
+ return ret;
+
+error:
+ if (var && var->name) {
+ g_string_free(var->name, TRUE);