aboutsummaryrefslogtreecommitdiff
path: root/celt/stack_alloc.h
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2012-12-05 00:50:53 -0500
committerJean-Marc Valin <jmvalin@jmvalin.ca>2012-12-05 00:50:53 -0500
commit9283114fa1096355ac1a8e25a7f524106963a4ab (patch)
treec1cc3c628e3771fa0be0f757aa9531960203592f /celt/stack_alloc.h
parentd0fd9d4baa84ba11b1e9057987008977b3709607 (diff)
downloadlibopus-9283114fa1096355ac1a8e25a7f524106963a4ab.tar.gz
Adds explicit valgrind checks when ENABLE_VALGRIND is defined
Diffstat (limited to 'celt/stack_alloc.h')
-rw-r--r--celt/stack_alloc.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/celt/stack_alloc.h b/celt/stack_alloc.h
index a6f06d22..1c093a8c 100644
--- a/celt/stack_alloc.h
+++ b/celt/stack_alloc.h
@@ -146,4 +146,26 @@ extern char *global_stack_top;
#endif /* VAR_ARRAYS */
+
+#ifdef ENABLE_VALGRIND
+
+#include <valgrind/memcheck.h>
+#define OPUS_CHECK_ARRAY(ptr, len) VALGRIND_CHECK_MEM_IS_DEFINED(ptr, len*sizeof(*ptr))
+#define OPUS_CHECK_VALUE(value) VALGRIND_CHECK_VALUE_IS_DEFINED(value)
+#define OPUS_CHECK_ARRAY_COND(ptr, len) VALGRIND_CHECK_MEM_IS_DEFINED(ptr, len*sizeof(*ptr))
+#define OPUS_CHECK_VALUE_COND(value) VALGRIND_CHECK_VALUE_IS_DEFINED(value)
+#define OPUS_PRINT_INT(value) do {fprintf(stderr, #value " = %d at %s:%d\n", value, __FILE__, __LINE__);}while(0)
+#define OPUS_FPRINTF fprintf
+
+#else
+
+static inline int _opus_false(void) {return 0;}
+#define OPUS_CHECK_ARRAY(ptr, len) _opus_false()
+#define OPUS_CHECK_VALUE(value) _opus_false()
+#define OPUS_PRINT_INT(value) do{}while(0)
+#define OPUS_FPRINTF (void)
+
+#endif
+
+
#endif /* STACK_ALLOC_H */