ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the size_lookup[] array.
* ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the size_lookup[] array. (ggc_alloc_stat): Use NUM_SIZE_LOOKUP. (ggc_pch_count_object): Likewise. (ggc_pch_alloc_object): Likewise. (ggc_pch_write_object): Likewise. (init_ggc): Do not attempt to initialize entries in the size_lookup[] array for objects whose size is greater than than the length of the array. From-SVN: r115738
This commit is contained in:
parent
2daec0f085
commit
6583cf153d
2 changed files with 23 additions and 8 deletions
|
@ -1,3 +1,15 @@
|
|||
2006-07-25 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
|
||||
size_lookup[] array.
|
||||
(ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
|
||||
(ggc_pch_count_object): Likewise.
|
||||
(ggc_pch_alloc_object): Likewise.
|
||||
(ggc_pch_write_object): Likewise.
|
||||
(init_ggc): Do not attempt to initialize entries in the
|
||||
size_lookup[] array for objects whose size is greater than than
|
||||
the length of the array.
|
||||
|
||||
2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* dbxout.c (output_used_types_helper): Push queued types
|
||||
|
|
|
@ -1029,8 +1029,8 @@ release_pages (void)
|
|||
|
||||
/* This table provides a fast way to determine ceil(log_2(size)) for
|
||||
allocation requests. The minimum allocation size is eight bytes. */
|
||||
|
||||
static unsigned char size_lookup[512] =
|
||||
#define NUM_SIZE_LOOKUP 512
|
||||
static unsigned char size_lookup[NUM_SIZE_LOOKUP] =
|
||||
{
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
||||
|
@ -1084,7 +1084,7 @@ ggc_alloc_stat (size_t size MEM_STAT_DECL)
|
|||
struct page_entry *entry;
|
||||
void *result;
|
||||
|
||||
if (size < 512)
|
||||
if (size < NUM_SIZE_LOOKUP)
|
||||
{
|
||||
order = size_lookup[size];
|
||||
object_size = OBJECT_SIZE (order);
|
||||
|
@ -1534,8 +1534,11 @@ init_ggc (void)
|
|||
int o;
|
||||
int i;
|
||||
|
||||
o = size_lookup[OBJECT_SIZE (order)];
|
||||
for (i = OBJECT_SIZE (order); size_lookup [i] == o; --i)
|
||||
i = OBJECT_SIZE (order);
|
||||
if (i >= NUM_SIZE_LOOKUP)
|
||||
continue;
|
||||
|
||||
for (o = size_lookup[i]; o == size_lookup [i]; --i)
|
||||
size_lookup[i] = order;
|
||||
}
|
||||
|
||||
|
@ -2046,7 +2049,7 @@ ggc_pch_count_object (struct ggc_pch_data *d, void *x ATTRIBUTE_UNUSED,
|
|||
{
|
||||
unsigned order;
|
||||
|
||||
if (size < 512)
|
||||
if (size < NUM_SIZE_LOOKUP)
|
||||
order = size_lookup[size];
|
||||
else
|
||||
{
|
||||
|
@ -2091,7 +2094,7 @@ ggc_pch_alloc_object (struct ggc_pch_data *d, void *x ATTRIBUTE_UNUSED,
|
|||
unsigned order;
|
||||
char *result;
|
||||
|
||||
if (size < 512)
|
||||
if (size < NUM_SIZE_LOOKUP)
|
||||
order = size_lookup[size];
|
||||
else
|
||||
{
|
||||
|
@ -2120,7 +2123,7 @@ ggc_pch_write_object (struct ggc_pch_data *d ATTRIBUTE_UNUSED,
|
|||
unsigned order;
|
||||
static const char emptyBytes[256];
|
||||
|
||||
if (size < 512)
|
||||
if (size < NUM_SIZE_LOOKUP)
|
||||
order = size_lookup[size];
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue