X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fmarker.c;h=07c50f27d3581809dfc4b898bfd7fd0c045db7ee;hb=565460eafbf79918133fa354b0827aa5a692f46e;hp=7583e62b9090f721c040b59e3414b5a0aae7672a;hpb=2e13d6afdf079eaa03549ae6c8f4ccf3be90e0d2;p=lttv.git diff --git a/ltt/branches/poly/ltt/marker.c b/ltt/branches/poly/ltt/marker.c index 7583e62b..07c50f27 100644 --- a/ltt/branches/poly/ltt/marker.c +++ b/ltt/branches/poly/ltt/marker.c @@ -346,7 +346,7 @@ static void format_parse(const char *fmt, struct marker_info *info) } break; case ' ': - if (name_end && name_begin) { + if (!name_end && name_begin) { name_end = fmt; if (name) g_free(name); @@ -356,7 +356,7 @@ static void format_parse(const char *fmt, struct marker_info *info) } break; /* Skip white spaces */ default: - if (!name) { + if (!name_begin) { name_begin = fmt; name_end = NULL; } @@ -395,6 +395,7 @@ int marker_format_event(LttTrace *trace, GQuark name, const char *format) g_error("Error parsing marker format \"%s\" for marker \"%s\"", format, g_quark_to_string(name)); } + return 0; } int marker_id_event(LttTrace *trace, GQuark name, guint16 id, @@ -402,6 +403,7 @@ int marker_id_event(LttTrace *trace, GQuark name, guint16 id, uint8_t size_t_size, uint8_t alignment) { struct marker_info *info, *head; + int found = 0; if (trace->markers->len < id) trace->markers = g_array_set_size(trace->markers, id+1); @@ -417,9 +419,16 @@ int marker_id_event(LttTrace *trace, GQuark name, guint16 id, if (!head) g_hash_table_insert(trace->markers_hash, (gpointer)name, info); else { - g_hash_table_replace(trace->markers_hash, (gpointer)name, info); - info->next = head; + struct marker_info *iter; + for (iter = head; iter != NULL; iter = iter->next) + if (iter->name == name) + found = 1; + if (!found) { + g_hash_table_replace(trace->markers_hash, (gpointer)name, info); + info->next = head; + } } + return 0; } int allocate_marker_data(LttTrace *trace)