summaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-11 15:37:36 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-11 15:37:36 +0100
commit95cf62a4a9b625146de766d91551ef4593652ac8 (patch)
tree7c72044b41748e1c5b786be571e50e0fd363cf76 /vespamalloc
parent2b5b5302a638e055208577cf5ef7210d32a4c19b (diff)
Terminate the stackentries and do not count empty as it does not provide any value.
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/datasegment.hpp5
-rw-r--r--vespamalloc/src/vespamalloc/util/callstack.h3
2 files changed, 4 insertions, 4 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/datasegment.hpp b/vespamalloc/src/vespamalloc/malloc/datasegment.hpp
index fe9d00decd0..281d5f98756 100644
--- a/vespamalloc/src/vespamalloc/malloc/datasegment.hpp
+++ b/vespamalloc/src/vespamalloc/malloc/datasegment.hpp
@@ -170,7 +170,6 @@ size_t DataSegment<MemBlockPtrT>::infoThread(FILE * os, int level, int thread, S
size_t allocatedCount(0);
size_t notAccounted(0);
size_t invalidCallStacks(0);
- size_t emptyCallStacks(0);
std::unique_ptr<CallGraphLT> callGraph(new CallGraphLT);
for(size_t i=0; i < NELEMS(_blockList); ) {
const BlockT & b = _blockList[i];
@@ -199,9 +198,7 @@ size_t DataSegment<MemBlockPtrT>::infoThread(FILE * os, int level, int thread, S
notAccounted++;
}
} else {
- if (mem.callStackLen() == 0) {
- emptyCallStacks++;
- } else {
+ if (mem.callStackLen()) {
invalidCallStacks++;
}
}
diff --git a/vespamalloc/src/vespamalloc/util/callstack.h b/vespamalloc/src/vespamalloc/util/callstack.h
index fa9640b2a2d..ca7c369bfea 100644
--- a/vespamalloc/src/vespamalloc/util/callstack.h
+++ b/vespamalloc/src/vespamalloc/util/callstack.h
@@ -75,6 +75,9 @@ size_t StackEntry<StackRep>::fillStack(StackEntry<StackRep> *stack, size_t nelem
} else {
sz = 0;
}
+ if (sz < nelems) {
+ stack[sz] = StackEntry<StackRep>();
+ }
return sz;
}