projects
/
platform
/
upstream
/
dbus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added NameList method handling, small improvemnets and cleanups
[platform/upstream/dbus.git]
/
dbus
/
dbus-mempool.c
diff --git
a/dbus/dbus-mempool.c
b/dbus/dbus-mempool.c
index
563bffc
..
0c3f117
100644
(file)
--- a/
dbus/dbus-mempool.c
+++ b/
dbus/dbus-mempool.c
@@
-24,6
+24,7
@@
#include <config.h>
#include "dbus-mempool.h"
#include "dbus-internals.h"
#include <config.h>
#include "dbus-mempool.h"
#include "dbus-internals.h"
+#include "dbus-valgrind-internal.h"
/**
* @defgroup DBusMemPool memory pools
/**
* @defgroup DBusMemPool memory pools
@@
-171,7
+172,9
@@
_dbus_mem_pool_new (int element_size,
_dbus_assert ((pool->block_size %
pool->element_size) == 0);
_dbus_assert ((pool->block_size %
pool->element_size) == 0);
-
+
+ VALGRIND_CREATE_MEMPOOL (pool, 0, zero_elements);
+
return pool;
}
return pool;
}
@@
-185,6
+188,8
@@
_dbus_mem_pool_free (DBusMemPool *pool)
{
DBusMemBlock *block;
{
DBusMemBlock *block;
+ VALGRIND_DESTROY_MEMPOOL (pool);
+
block = pool->blocks;
while (block != NULL)
{
block = pool->blocks;
while (block != NULL)
{
@@
-235,6
+240,8
@@
_dbus_mem_pool_alloc (DBusMemPool *pool)
pool->blocks = block;
pool->allocated_elements += 1;
pool->blocks = block;
pool->allocated_elements += 1;
+ VALGRIND_MEMPOOL_ALLOC (pool, (void *) &block->elements[0],
+ pool->element_size);
return (void*) &block->elements[0];
}
else
return (void*) &block->elements[0];
}
else
@@
-254,11
+261,13
@@
_dbus_mem_pool_alloc (DBusMemPool *pool)
pool->free_elements = pool->free_elements->next;
pool->free_elements = pool->free_elements->next;
+ VALGRIND_MEMPOOL_ALLOC (pool, element, pool->element_size);
+
if (pool->zero_elements)
memset (element, '\0', pool->element_size);
pool->allocated_elements += 1;
if (pool->zero_elements)
memset (element, '\0', pool->element_size);
pool->allocated_elements += 1;
-
+
return element;
}
else
return element;
}
else
@@
-319,7
+328,8
@@
_dbus_mem_pool_alloc (DBusMemPool *pool)
pool->blocks->used_so_far += pool->element_size;
pool->allocated_elements += 1;
pool->blocks->used_so_far += pool->element_size;
pool->allocated_elements += 1;
-
+
+ VALGRIND_MEMPOOL_ALLOC (pool, element, pool->element_size);
return element;
}
}
return element;
}
}
@@
-337,6
+347,8
@@
dbus_bool_t
_dbus_mem_pool_dealloc (DBusMemPool *pool,
void *element)
{
_dbus_mem_pool_dealloc (DBusMemPool *pool,
void *element)
{
+ VALGRIND_MEMPOOL_FREE (pool, element);
+
#ifdef DBUS_BUILD_TESTS
if (_dbus_disable_mem_pools ())
{
#ifdef DBUS_BUILD_TESTS
if (_dbus_disable_mem_pools ())
{
@@
-380,6
+392,9
@@
_dbus_mem_pool_dealloc (DBusMemPool *pool,
DBusFreedElement *freed;
freed = element;
DBusFreedElement *freed;
freed = element;
+ /* used for internal mempool administration */
+ VALGRIND_MAKE_MEM_UNDEFINED (freed, sizeof (freed));
+
freed->next = pool->free_elements;
pool->free_elements = freed;
freed->next = pool->free_elements;
pool->free_elements = freed;