Commit a064479c by Nathan Sidwell Committed by Nathan Sidwell

vec.h (VEC_embedded_alloc): Remove.

	* vec.h (VEC_embedded_alloc): Remove.
	(VEC_embedded_size, VEC_embedded_init): New.
	(VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
	MEM_STAT_INFO.
	(VEC_truncate): New.
	(vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
	(vec_embedded_alloc): Remove.
	* vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
	(vec_embedded_alloc): Remove.

From-SVN: r84159
parent 9bc81313
2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
* vec.h (VEC_embedded_alloc): Remove.
(VEC_embedded_size, VEC_embedded_init): New.
(VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
MEM_STAT_INFO.
(VEC_truncate): New.
(vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
(vec_embedded_alloc): Remove.
* vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
(vec_embedded_alloc): Remove.
2004-07-06 Mark Mitchell <mark@codesourcery.com> 2004-07-06 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (langhooks.o): Do not depend on gt-langhooks.h. * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
......
...@@ -39,10 +39,11 @@ struct vec_prefix ...@@ -39,10 +39,11 @@ struct vec_prefix
exponentially. VEC can be NULL, to create a new vector. */ exponentially. VEC can be NULL, to create a new vector. */
void * void *
vec_p_reserve (void *vec, size_t reserve) vec_p_reserve (void *vec, size_t reserve MEM_STAT_DECL)
{ {
return vec_o_reserve (vec, reserve, return vec_o_reserve (vec, reserve,
offsetof (struct vec_prefix, vec), sizeof (void *)); offsetof (struct vec_prefix, vec), sizeof (void *)
PASS_MEM_STAT);
} }
/* Ensure there are at least RESERVE free slots in VEC, if RESERVE != /* Ensure there are at least RESERVE free slots in VEC, if RESERVE !=
...@@ -52,7 +53,8 @@ vec_p_reserve (void *vec, size_t reserve) ...@@ -52,7 +53,8 @@ vec_p_reserve (void *vec, size_t reserve)
consistes of ELT_SIZE sized elements. */ consistes of ELT_SIZE sized elements. */
void * void *
vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size) vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size
MEM_STAT_DECL)
{ {
struct vec_prefix *pfx = vec; struct vec_prefix *pfx = vec;
size_t alloc; size_t alloc;
...@@ -64,7 +66,8 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size) ...@@ -64,7 +66,8 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size)
if (!pfx || pfx->alloc < alloc) if (!pfx || pfx->alloc < alloc)
{ {
vec = ggc_realloc (vec, vec_offset + alloc * elt_size); vec = ggc_realloc_stat (vec, vec_offset + alloc * elt_size
PASS_MEM_STAT);
((struct vec_prefix *)vec)->alloc = alloc; ((struct vec_prefix *)vec)->alloc = alloc;
if (!pfx) if (!pfx)
((struct vec_prefix *)vec)->num = 0; ((struct vec_prefix *)vec)->num = 0;
...@@ -73,23 +76,6 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size) ...@@ -73,23 +76,6 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size)
return vec; return vec;
} }
/* Allocate a structure which contains a vector as a trailing element.
The vector is at STRUCT_OFFSET offset within the struct and the
vector's array is at VEC_OFFSET offset within the vector. */
void *
vec_embedded_alloc (size_t struct_offset, size_t vec_offset,
size_t elt_size, size_t reserve)
{
void *ptr = ggc_alloc (struct_offset + vec_offset + elt_size * reserve);
struct vec_prefix *pfx = (struct vec_prefix *)((char *)ptr + struct_offset);
pfx->num = 0;
pfx->alloc = reserve;
return ptr;
}
#if ENABLE_CHECKING #if ENABLE_CHECKING
/* Issue a vector domain error, and then fall over. */ /* Issue a vector domain error, and then fall over. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment