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)
(r_alloc_free) [REL_ALLOC]: Move decls from here ...
* lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
[REL_ALLOC]: ... to here, to check interface.
* m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
Remove decls.  This fixes an "It stinks!".
This commit is contained in:
Paul Eggert 2012-04-15 18:10:42 -07:00
parent 15142f2797
commit a041960a7c
4 changed files with 17 additions and 21 deletions

View file

@ -1,5 +1,14 @@
2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
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)
(r_alloc_free) [REL_ALLOC]: Move decls from here ...
* lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
[REL_ALLOC]: ... to here, to check interface.
* m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
Remove decls. This fixes an "It stinks!".
* alloc.c (which_symbols): Fix alignment issue / type clash.
2012-04-15 Andreas Schwab <schwab@linux-m68k.org>

View file

@ -2006,10 +2006,6 @@ advance_to_char_boundary (EMACS_INT byte_pos)
return byte_pos;
}
#ifdef REL_ALLOC
extern void r_alloc_reset_variable (POINTER_TYPE *, POINTER_TYPE *);
#endif /* REL_ALLOC */
DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
1, 1, 0,
doc: /* Swap the text between current buffer and BUFFER. */)
@ -4771,13 +4767,6 @@ mmap_realloc (POINTER_TYPE **var, size_t nbytes)
Buffer-text Allocation
***********************************************************************/
#ifdef REL_ALLOC
extern POINTER_TYPE *r_alloc (POINTER_TYPE **, size_t);
extern POINTER_TYPE *r_re_alloc (POINTER_TYPE **, size_t);
extern void r_alloc_free (POINTER_TYPE **ptr);
#endif /* REL_ALLOC */
/* Allocate NBYTES bytes for buffer B's text buffer. */
static void

View file

@ -2832,6 +2832,14 @@ extern void syms_of_alloc (void);
extern struct buffer * allocate_buffer (void);
extern int valid_lisp_object_p (Lisp_Object);
#ifdef REL_ALLOC
/* Defined in ralloc.c */
extern void *r_alloc (void **, size_t);
extern void r_alloc_free (void **);
extern void *r_re_alloc (void **, size_t);
extern void r_alloc_reset_variable (void **, void **);
#endif
/* Defined in chartab.c */
EXFUN (Fmake_char_table, 2);
EXFUN (Fset_char_table_parent, 2);

View file

@ -30,13 +30,3 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define EMACS_INT long
#define pI "l"
#define EMACS_UINT unsigned long
#ifdef REL_ALLOC
#ifndef _MALLOC_INTERNAL
/* "char *" because ralloc.c defines it that way. gmalloc.c thinks it
is allowed to prototype these as "void *" so we don't prototype in
that case. You're right: it stinks! */
extern char *r_alloc (), *r_re_alloc ();
extern void r_alloc_free ();
#endif /* not _MALLOC_INTERNAL */
#endif /* REL_ALLOC */