diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index d22030828c217572a0e250743e4061df1a7b36a5..c324bdf8baba1bd4bac10fd752672c065c8fb781 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -884,6 +884,11 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, return err; } +static bool dso__build_id_equal(const struct dso *self, u8 *build_id) +{ + return memcmp(self->build_id, build_id, sizeof(self->build_id)) == 0; +} + bool dsos__read_build_ids(void) { bool have_build_id = false; @@ -1099,8 +1104,7 @@ int dso__load(struct dso *self, struct map *map, symbol_filter_t filter) sizeof(build_id)) < 0) goto more; compare_build_id: - if (memcmp(build_id, self->build_id, - sizeof(self->build_id)) != 0) + if (!dso__build_id_equal(self, build_id)) goto more; }