Fix minor ralloc.c problems found by static checking.
See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE) (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused. (r_alloc_sbrk): Now static.
This commit is contained in:
parent
a041960a7c
commit
3539f31f03
2 changed files with 7 additions and 59 deletions
|
@ -1,5 +1,11 @@
|
|||
2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix minor ralloc.c problems found by static checking.
|
||||
See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
|
||||
* ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
|
||||
(r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
|
||||
(r_alloc_sbrk): Now static.
|
||||
|
||||
Improve ralloc.c interface checking.
|
||||
See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
|
||||
* buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
|
||||
|
|
60
src/ralloc.c
60
src/ralloc.c
|
@ -95,10 +95,8 @@ static int extra_bytes;
|
|||
/* Macros for rounding. Note that rounding to any value is possible
|
||||
by changing the definition of PAGE. */
|
||||
#define PAGE (getpagesize ())
|
||||
#define ALIGNED(addr) (((unsigned long int) (addr) & (page_size - 1)) == 0)
|
||||
#define ROUNDUP(size) (((unsigned long int) (size) + page_size - 1) \
|
||||
& ~(page_size - 1))
|
||||
#define ROUND_TO_PAGE(addr) (addr & (~(page_size - 1)))
|
||||
|
||||
#define MEM_ALIGN sizeof (double)
|
||||
#define MEM_ROUNDUP(addr) (((unsigned long int)(addr) + MEM_ALIGN - 1) \
|
||||
|
@ -151,7 +149,6 @@ typedef struct heap
|
|||
} *heap_ptr;
|
||||
|
||||
#define NIL_HEAP ((heap_ptr) 0)
|
||||
#define HEAP_PTR_SIZE (sizeof (struct heap))
|
||||
|
||||
/* This is the first heap object.
|
||||
If we need additional heap objects, each one resides at the beginning of
|
||||
|
@ -366,15 +363,6 @@ relinquish (void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Return the total size in use by relocating allocator,
|
||||
above where malloc gets space. */
|
||||
|
||||
long
|
||||
r_alloc_size_in_use (void)
|
||||
{
|
||||
return (char *) break_value - (char *) virtual_break_value;
|
||||
}
|
||||
|
||||
/* The meat - allocating, freeing, and relocating blocs. */
|
||||
|
||||
|
@ -748,7 +736,7 @@ free_bloc (bloc_ptr bloc)
|
|||
__morecore hook values - in particular, __default_morecore in the
|
||||
GNU malloc package. */
|
||||
|
||||
POINTER
|
||||
static POINTER
|
||||
r_alloc_sbrk (long int size)
|
||||
{
|
||||
register bloc_ptr b;
|
||||
|
@ -1014,52 +1002,6 @@ r_re_alloc (POINTER *ptr, SIZE size)
|
|||
return *ptr;
|
||||
}
|
||||
|
||||
/* Disable relocations, after making room for at least SIZE bytes
|
||||
of non-relocatable heap if possible. The relocatable blocs are
|
||||
guaranteed to hold still until thawed, even if this means that
|
||||
malloc must return a null pointer. */
|
||||
|
||||
void
|
||||
r_alloc_freeze (long int size)
|
||||
{
|
||||
if (! r_alloc_initialized)
|
||||
r_alloc_init ();
|
||||
|
||||
/* If already frozen, we can't make any more room, so don't try. */
|
||||
if (r_alloc_freeze_level > 0)
|
||||
size = 0;
|
||||
/* If we can't get the amount requested, half is better than nothing. */
|
||||
while (size > 0 && r_alloc_sbrk (size) == 0)
|
||||
size /= 2;
|
||||
++r_alloc_freeze_level;
|
||||
if (size > 0)
|
||||
r_alloc_sbrk (-size);
|
||||
}
|
||||
|
||||
void
|
||||
r_alloc_thaw (void)
|
||||
{
|
||||
|
||||
if (! r_alloc_initialized)
|
||||
r_alloc_init ();
|
||||
|
||||
if (--r_alloc_freeze_level < 0)
|
||||
abort ();
|
||||
|
||||
/* This frees all unused blocs. It is not too inefficient, as the resize
|
||||
and memcpy is done only once. Afterwards, all unreferenced blocs are
|
||||
already shrunk to zero size. */
|
||||
if (!r_alloc_freeze_level)
|
||||
{
|
||||
bloc_ptr *b = &first_bloc;
|
||||
while (*b)
|
||||
if (!(*b)->variable)
|
||||
free_bloc (*b);
|
||||
else
|
||||
b = &(*b)->next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if defined (emacs) && defined (DOUG_LEA_MALLOC)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue