aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2015-02-26 18:33:10 -0600
committerMark Lobodzinski <mark@lunarg.com>2015-02-26 18:33:10 -0600
commit8c30df14b10c55bb1d4f6a5518c8bc786de3bea0 (patch)
treef4bfd65fa6cabe5fa2a6dbac69aa14162d1d8ee2
parent424f797a78a0c4da7244136647e80d13e152eeab (diff)
downloadusermoji-8c30df14b10c55bb1d4f6a5518c8bc786de3bea0.tar.xz
layers: Fix MemTracker memory leak
Call to string helper function was not freeing returned memory.
-rw-r--r--layers/mem_tracker.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/layers/mem_tracker.c b/layers/mem_tracker.c
index df2cdd73..a0903cd9 100644
--- a/layers/mem_tracker.c
+++ b/layers/mem_tracker.c
@@ -655,11 +655,15 @@ static void printMemList()
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str);
sprintf(str, " pNext Mem Obj Node: %p", (void*)pTrav->pNextGlobalNode);
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str);
- if (0 != pTrav->allocInfo.allocationSize)
- sprintf(str, " Mem Alloc info:\n%s", xgl_print_xgl_memory_alloc_info(&pTrav->allocInfo, "{MEM}INFO : "));
- else
+ if (0 != pTrav->allocInfo.allocationSize) {
+ char* pAllocInfoMsg = xgl_print_xgl_memory_alloc_info(&pTrav->allocInfo, "{MEM}INFO : ");
+ sprintf(str, " Mem Alloc info:\n%s", pAllocInfoMsg);
+ layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str);
+ free(pAllocInfoMsg);
+ } else {
sprintf(str, " Mem Alloc info is NULL (alloc done by xglWsiX11CreatePresentableImage())");
- layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str);
+ layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str);
+ }
MINI_NODE* pObjTrav = pTrav->pObjBindings;
if (!pObjTrav) {
sprintf(str, " No XGL Object bindings");