pthread_mutex_lock(&markers_mutex);
for (iter = begin; iter < end; iter++) {
+ if (!*iter)
+ continue; /* skip dummy */
mark_entry = get_marker((*iter)->channel, (*iter)->name);
if (mark_entry) {
set_marker(mark_entry, *iter, !!mark_entry->refcount);
struct marker * const *begin,
struct marker * const *end)
{
- if (!*marker && begin != end) {
+ if (!*marker && begin != end)
*marker = begin;
- return 1;
+ while (*marker >= begin && *marker < end) {
+ if (!**marker)
+ (*marker)++; /* skip dummy */
+ else
+ return 1;
}
- if (*marker >= begin && *marker < end)
- return 1;
return 0;
}
//ust// EXPORT_SYMBOL_GPL(marker_get_iter_range);
{
if (new_marker_cb) {
struct marker * const *m;
- for(m=start; m < end; m++) {
- new_marker_cb(*m);
+
+ for(m = start; m < end; m++) {
+ if (*m)
+ new_marker_cb(*m);
}
}
}
/* FIXME: update just the loaded lib */
lib_update_markers();
- DBG("just registered a markers section from %p and having %d markers", markers_start, markers_count);
+ DBG("just registered a markers section from %p and having %d markers (minus dummy markers)", markers_start, markers_count);
return 0;
}