From 8b07361ed42c59b4924327db352609df2b3c26d8 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 23 Jan 2004 23:01:55 +0100 Subject: [PATCH] alloc-pool.c (align_four): Kill. * alloc-pool.c (align_four): Kill. (create_alloc_pool): Align size to eight. (free_alloc_pool, free_pool): Invalidate deallocated data. From-SVN: r76456 --- gcc/ChangeLog | 6 ++++++ gcc/alloc-pool.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 48a9f84f99c..ed7405890b6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-23 Jan Hubicka + + * alloc-pool.c (align_four): Kill. + (create_alloc_pool): Align size to eight. + (free_alloc_pool, free_pool): Invalidate deallocated data. + 2004-01-23 Ian Lance Taylor PR gcc/1532 diff --git a/gcc/alloc-pool.c b/gcc/alloc-pool.c index c21cfe4c707..bdcd42fd139 100644 --- a/gcc/alloc-pool.c +++ b/gcc/alloc-pool.c @@ -34,7 +34,6 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; #define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__) -#define align_four(x) (((x+3) >> 2) << 2) #define align_eight(x) (((x+7) >> 3) << 3) /* The internal allocation object. */ @@ -90,7 +89,7 @@ create_alloc_pool (const char *name, size_t size, size_t num) size = sizeof (alloc_pool_list); /* Now align the size to a multiple of 4. */ - size = align_four (size); + size = align_eight (size); #ifdef ENABLE_CHECKING /* Add the aligned size of ID. */ @@ -154,6 +153,9 @@ free_alloc_pool (alloc_pool pool) } /* Lastly, free the pool and the name. */ free (pool->name); +#ifdef ENABLE_CHECKING + memset (pool, 0xaf, sizeof (*pool)); +#endif free (pool); } @@ -225,6 +227,8 @@ pool_free (alloc_pool pool, void *ptr) if (!ptr) abort (); + memset (ptr, 0xaf, pool->elt_size - offsetof (allocation_object, u.data)); + /* Check whether the PTR was allocated from POOL. */ if (pool->id != ALLOCATION_OBJECT_PTR_FROM_USER_PTR (ptr)->id) abort (); -- 2.30.2