/* are we filtering traces based on paths? */
extern struct path_set {
const char **paths_selected;
- unsigned int num_selected;
+ size_t num_selected;
+ size_t size;
} global_path_set;
#define tracing_paths (global_path_set.num_selected != 0)
extern unsigned xflag;
static void
storepath(const char *path, struct path_set *set)
{
- unsigned i;
-
if (pathmatch(path, set))
return; /* already in table */
- i = set->num_selected++;
- set->paths_selected = xreallocarray(set->paths_selected,
- set->num_selected,
- sizeof(set->paths_selected[0]));
- set->paths_selected[i] = path;
+ if (set->num_selected >= set->size)
+ set->paths_selected =
+ xgrowarray(set->paths_selected, &set->size,
+ sizeof(set->paths_selected[0]));
+
+ set->paths_selected[set->num_selected++] = path;
}
/*