Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-10-05 08:38:08 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-10-05 08:38:08 +0400
commit2621d77f393b5c92111fc422eea83f6252f99464 (patch)
treeb8ecc507e02e2bb0cf46b0a2b66829b3a2326626 /source/blender/blenlib/intern/BLI_memarena.c
parent7a9bc838de58c306afc33c7d0dd158af655817e6 (diff)
use valgrind hints for memarena for better debugging info when using valgrind.
also quiet a false positive in BLI_mempool_free().
Diffstat (limited to 'source/blender/blenlib/intern/BLI_memarena.c')
-rw-r--r--source/blender/blenlib/intern/BLI_memarena.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/BLI_memarena.c b/source/blender/blenlib/intern/BLI_memarena.c
index 747c2f0c2b7..6b845bf842e 100644
--- a/source/blender/blenlib/intern/BLI_memarena.c
+++ b/source/blender/blenlib/intern/BLI_memarena.c
@@ -38,6 +38,10 @@
#include "BLI_linklist.h"
#include "BLI_strict_flags.h"
+#ifdef WITH_MEM_VALGRIND
+# include "valgrind/memcheck.h"
+#endif
+
struct MemArena {
unsigned char *curbuf;
int bufsize, cursize;
@@ -56,6 +60,10 @@ MemArena *BLI_memarena_new(const int bufsize, const char *name)
ma->align = 8;
ma->name = name;
+#ifdef WITH_MEM_VALGRIND
+ VALGRIND_CREATE_MEMPOOL(ma, 0, false);
+#endif
+
return ma;
}
@@ -122,6 +130,10 @@ void *BLI_memarena_alloc(MemArena *ma, int size)
ma->curbuf += size;
ma->cursize -= size;
+#ifdef WITH_MEM_VALGRIND
+ VALGRIND_MEMPOOL_ALLOC(ma, ptr, size);
+#endif
+
return ptr;
}
@@ -152,4 +164,10 @@ void BLI_memarena_clear(MemArena *ma)
memset(ma->curbuf, 0, (size_t)curbuf_used);
}
}
+
+#ifdef WITH_MEM_VALGRIND
+ VALGRIND_DESTROY_MEMPOOL(ma);
+ VALGRIND_CREATE_MEMPOOL(ma, 0, false);
+#endif
+
}