/*
- * $Id: config.h,v 1.25 2007/09/20 11:07:53 amosjeffries Exp $
+ * $Id: config.h,v 1.25.2.1 2008/02/25 03:41:38 amosjeffries Exp $
*
* AUTHOR: Duane Wessels
*
*/
#if WITH_VALGRIND
#include <valgrind/memcheck.h>
+#undef VALGRIND_MAKE_NOACCESS
+#undef VALGRIND_MAKE_WRITABLE
+#undef VALGRIND_MAKE_READABLE
+/* A little glue for older valgrind version prior to 3.2.0 */
+#ifndef VALGRIND_MAKE_MEM_NOACCESS
+#define VALGRIND_MAKE_MEM_NOACCESS VALGRIND_MAKE_NOACCESS
+#define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_WRITABLE
+#define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_READABLE
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE VALGRIND_CHECK_WRITABLE
+#endif
#else
-#define VALGRIND_MAKE_NOACCESS(a,b) (0)
-#define VALGRIND_MAKE_WRITABLE(a,b) (0)
-#define VALGRIND_MAKE_READABLE(a,b) (0)
-#define VALGRIND_CHECK_WRITABLE(a,b) (0)
-#define VALGRIND_CHECK_READABLE(a,b) (0)
+#define VALGRIND_MAKE_MEM_NOACCESS(a,b) (0)
+#define VALGRIND_MAKE_MEM_UNDEFINED(a,b) (0)
+#define VALGRIND_MAKE_MEM_DEFINED(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_DEFINED(a,b) (0)
#define VALGRIND_MALLOCLIKE_BLOCK(a,b,c,d)
#define VALGRIND_FREELIKE_BLOCK(a,b)
#define RUNNING_ON_VALGRIND 0
/*
- * $Id: MemPool.cc,v 1.10 2007/11/13 23:25:33 rousskov Exp $
+ * $Id: MemPool.cc,v 1.10.2.1 2008/02/25 03:41:39 amosjeffries Exp $
*
* DEBUG: section 63 Low Level Memory Pool Management
* AUTHOR: Alex Rousskov, Andres Kroonmaa, Robert Collins
for (int i = 1; i < pool->chunk_capacity; i++) {
*Free = (void *) ((char *) Free + pool->obj_size);
void **nextFree = (void **)*Free;
- (void) VALGRIND_MAKE_NOACCESS(Free, pool->obj_size);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(Free, pool->obj_size);
Free = nextFree;
}
nextFreeChunk = pool->nextFreeChunk;
Free = (void **)obj;
*Free = freeCache;
freeCache = obj;
- (void) VALGRIND_MAKE_NOACCESS(obj, obj_size);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(obj, obj_size);
}
/*
/* first, try cache */
if (freeCache) {
Free = (void **)freeCache;
- (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
freeCache = *Free;
*Free = NULL;
return Free;
/* last free in this chunk, so remove us from perchunk freelist chain */
nextFreeChunk = chunk->nextFreeChunk;
}
- (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
return Free;
}
MemImplementingAllocator::free(void *obj)
{
assert(obj != NULL);
- (void) VALGRIND_CHECK_WRITABLE(obj, obj_size);
+ (void) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(obj, obj_size);
deallocate(obj);
++free_calls;
}
assert(splayLastResult == 0);
assert(chunk->inuse_count > 0);
chunk->inuse_count--;
- (void) VALGRIND_MAKE_READABLE(Free, sizeof(void *));
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, sizeof(void *));
freeCache = *(void **)Free; /* remove from global cache */
*(void **)Free = chunk->freeList; /* stuff into chunks freelist */
- (void) VALGRIND_MAKE_NOACCESS(Free, sizeof(void *));
+ (void) VALGRIND_MAKE_MEM_NOACCESS(Free, sizeof(void *));
chunk->freeList = Free;
chunk->lastref = squid_curtime;
}