/* Storage allocation and gc for GNU Emacs Lisp interpreter.
Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Emacs.
}
eassert ((aligned & 1) == aligned);
eassert (i == (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1));
+#ifdef HAVE_POSIX_MEMALIGN
+ eassert ((unsigned long)ABLOCKS_BASE (abase) % BLOCK_ALIGN == 0);
+#endif
free (ABLOCKS_BASE (abase));
}
UNBLOCK_INPUT;
{
INTERVAL val;
+ eassert (!handling_signal);
+
if (interval_free_list)
{
val = interval_free_list;
{
struct Lisp_String *s;
+ eassert (!handling_signal);
+
/* If the free-list is empty, allocate a new string_block, and
add all the Lisp_Strings in it to the free-list. */
if (string_free_list == NULL)
{
register Lisp_Object val;
+ eassert (!handling_signal);
+
if (float_free_list)
{
/* We use the data field for chaining the free list
{
register Lisp_Object val;
+ eassert (!handling_signal);
+
if (cons_free_list)
{
/* We use the cdr for chaining the free list
UNBLOCK_INPUT;
#endif
+ /* This gets triggered by code which I haven't bothered to fix. --Stef */
+ /* eassert (!handling_signal); */
+
nbytes = sizeof *p + (len - 1) * sizeof p->contents[0];
p = (struct Lisp_Vector *) lisp_malloc (nbytes, type);
CHECK_STRING (name);
+ eassert (!handling_signal);
+
if (symbol_free_list)
{
XSETSYMBOL (val, symbol_free_list);
{
Lisp_Object val;
+ eassert (!handling_signal);
+
if (marker_free_list)
{
XSETMISC (val, marker_free_list);