In commit
401fb0e87a ("MINOR: activity/memprofile: show per-DSO stats")
we added a summary per DSO. However the free calls/tot were not initialized
when creating a new entry because initially they were applied to any entry,
but since we don't update free calls for non-free capable callers, we still
need to reinitialize these entries when reassigning one. Because of this
bug, a "show profiling memory" output can randomly show highly negative
values on the DSO lines if it turns out that the DSO entry was created on
an alloc instead of a realloc/free.
Since the commit above was backported to 2.9, this one must go there as
well.
(entry->method != MEMPROF_METH_CALLOC)) {
tmp_memstats[j].free_calls = entry->free_calls;
tmp_memstats[j].free_tot = entry->free_tot;
+ } else {
+ tmp_memstats[j].free_calls = 0;
+ tmp_memstats[j].free_tot = 0;
}
} else {
tmp_memstats[j].alloc_calls += entry->alloc_calls;