#include "writer.h"
#include <assert.h>
-gboolean empty_ht(gpointer key, gpointer value, gpointer user_data)
+gboolean empty_trace_map(gpointer key, gpointer value, gpointer user_data)
{
+ struct fs_writer *fs_writer = value;
+ struct writer_component *writer_component = user_data;
+
+ fs_writer->trace_static = 1;
+ writer_close(writer_component, fs_writer);
+
return TRUE;
}
{
bt_put(writer_component->input_iterator);
- g_hash_table_foreach_remove(writer_component->stream_class_map,
- empty_ht, NULL);
- g_hash_table_destroy(writer_component->stream_class_map);
-
- g_hash_table_foreach_remove(writer_component->stream_map,
- empty_ht, NULL);
- g_hash_table_destroy(writer_component->stream_map);
-
g_hash_table_foreach_remove(writer_component->trace_map,
- empty_ht, NULL);
+ empty_trace_map, writer_component);
g_hash_table_destroy(writer_component->trace_map);
g_string_free(writer_component->base_path, true);
g_free(writer_component);
}
-static
-void unref_stream_class(struct bt_ctf_stream_class *writer_stream_class)
-{
- bt_put(writer_stream_class);
-}
-
-static
-void unref_stream(struct bt_ctf_stream_class *writer_stream)
-{
- bt_put(writer_stream);
-}
-
static
void free_fs_writer(struct fs_writer *fs_writer)
{
writer_component->err = stderr;
writer_component->trace_id = 0;
writer_component->trace_name_base = g_string_new("trace");
- writer_component->processed_first_event = false;
if (!writer_component->trace_name_base) {
g_free(writer_component);
writer_component = NULL;
*/
writer_component->trace_map = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL, (GDestroyNotify) free_fs_writer);
- writer_component->stream_class_map = g_hash_table_new_full(g_direct_hash,
- g_direct_equal, NULL, (GDestroyNotify) unref_stream_class);
- writer_component->stream_map = g_hash_table_new_full(g_direct_hash,
- g_direct_equal, NULL, (GDestroyNotify) unref_stream);
end:
return writer_component;