summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-07-15 01:45:06 -0400
committerRay Strode <rstrode@redhat.com>2008-07-15 04:07:38 -0400
commit1653bd18957647cd2f5f7d76338e55324c1c6bf2 (patch)
tree2637d0fed427a56e145bcce9f5860d7d8426d69f
parent1296be2fc72c3439a00c39b2f5eea35ce0ac0113 (diff)
downloaddbus-1653bd18957647cd2f5f7d76338e55324c1c6bf2.tar.gz
Refactor leak locator patch
Move some repeated loops to add_block and remove_block functions
-rw-r--r--dbus/dbus-memory.c80
1 files changed, 35 insertions, 45 deletions
diff --git a/dbus/dbus-memory.c b/dbus/dbus-memory.c
index 23157e65..459473fc 100644
--- a/dbus/dbus-memory.c
+++ b/dbus/dbus-memory.c
@@ -427,6 +427,36 @@ set_guards (void *real_block,
#endif
+static void
+add_block (struct block *block)
+{
+ int i;
+
+ for (i = 0; i < sizeof (blocks)/sizeof(*blocks); i++)
+ {
+ if (blocks[i] == NULL)
+ {
+ blocks[i] = block;
+ break;
+ }
+ }
+}
+
+static void
+remove_block (struct block *block)
+{
+ int i;
+
+ for (i = 0; i < sizeof(blocks)/sizeof(*blocks); i++)
+ {
+ if (blocks[i] == block)
+ {
+ blocks[i] = NULL;
+ break;
+ }
+ }
+}
+
/** @} */ /* End of internals docs */
@@ -480,7 +510,6 @@ dbus_malloc (size_t bytes)
else
{
struct block *block;
- int i;
void *mem;
block = malloc (sizeof (struct block) + bytes + 256);
block->size = bytes;
@@ -491,15 +520,7 @@ dbus_malloc (size_t bytes)
if (mem)
_dbus_atomic_inc (&n_blocks_outstanding);
#endif
- for (i = 0; i < sizeof (blocks)/sizeof(*blocks); i++)
- {
- if (blocks[i] == NULL)
- {
- blocks[i] = block;
- break;
- }
- }
-
+ add_block (block);
return mem;
}
}
@@ -548,7 +569,6 @@ dbus_malloc0 (size_t bytes)
else
{
struct block *block;
- int i;
void *mem;
block = calloc (sizeof (struct block) + bytes + 256, 1);
@@ -561,14 +581,7 @@ dbus_malloc0 (size_t bytes)
_dbus_atomic_inc (&n_blocks_outstanding);
#endif
- for (i = 0; i < sizeof(blocks)/sizeof(*blocks); i++)
- {
- if (blocks[i] == NULL)
- {
- blocks[i] = block;
- break;
- }
- }
+ add_block (block);
return mem;
}
@@ -642,21 +655,13 @@ dbus_realloc (void *memory,
else
{
struct block *block;
- int i;
void *mem;
if (memory != NULL)
{
block = (struct block *) (((char *) memory) - offsetof (struct block, memory));
- for (i = 0; i < sizeof(blocks)/sizeof(*blocks); i++)
- {
- if (blocks[i] == block)
- {
- blocks[i] = NULL;
- break;
- }
- }
+ remove_block (block);
} else block = NULL;
block = realloc (block, bytes + sizeof (struct block) + 256);
@@ -669,14 +674,7 @@ dbus_realloc (void *memory,
_dbus_atomic_inc (&n_blocks_outstanding);
#endif
- for (i = 0; i < sizeof(blocks)/sizeof(*blocks); i++)
- {
- if (blocks[i] == NULL)
- {
- blocks[i] = block;
- break;
- }
- }
+ add_block (block);
return mem;
}
}
@@ -709,7 +707,6 @@ dbus_free (void *memory)
if (memory) /* we guarantee it's safe to free (NULL) */
{
- int i;
struct block *block;
#ifdef DBUS_BUILD_TESTS
_dbus_atomic_dec (&n_blocks_outstanding);
@@ -719,14 +716,7 @@ dbus_free (void *memory)
block = (struct block *) (((char *) memory) - offsetof (struct block, memory));
- for (i = 0; i < sizeof(blocks)/sizeof(*blocks); i++)
- {
- if (blocks[i] == block)
- {
- blocks[i] = NULL;
- break;
- }
- }
+ remove_block (block);
free (block);
}