#define Dynarr_at(d, pos) ((d)->base[pos])
#define Dynarr_atp(d, pos) (&Dynarr_at (d, pos))
#define Dynarr_begin(d) Dynarr_atp (d, 0)
-#define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d))
+#define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d) - 1)
#define Dynarr_sizeof(d) ((d)->cur * (d)->elsize)
#define Dynarr_length(d) ((d)->cur)
#define Dynarr_largest(d) ((d)->largest)
least NEEDED_SIZE objects. The reallocing is done by doubling,
which ensures constant amortized time per element. */
#define DO_REALLOC(basevar, sizevar, needed_size, type) do { \
- size_t do_realloc_needed_size = (needed_size); \
+ EMACS_INT do_realloc_needed_size = (needed_size); \
if ((sizevar) < do_realloc_needed_size) \
{ \
if ((sizevar) < 32) \
{
struct lrecord_header lheader;
Lisp_Object next;
- size_t size;
+ EMACS_INT size;
unsigned long bits[1];
};
typedef struct Lisp_Bit_Vector Lisp_Bit_Vector;
#define C_READONLY(obj) (C_READONLY_RECORD_HEADER_P(XRECORD_LHEADER (obj)))
#define LISP_READONLY(obj) (LISP_READONLY_RECORD_HEADER_P(XRECORD_LHEADER (obj)))
-/*----------------------------- structrures ----------------------------*/
+/*----------------------------- structures -----------------------------*/
typedef struct structure_keyword_entry structure_keyword_entry;
struct structure_keyword_entry
/* Nonzero means don't do interactive redisplay and don't change tty modes */
extern int noninteractive, noninteractive1;
extern int fatal_error_in_progress;
+extern int inhibit_non_essential_printing_operations;
extern int preparing_for_armageddon;
extern Fixnum emacs_priority;
extern int running_asynch_code;
extern int suppress_early_error_handler_backtrace;
+void debug_break (void);
+int debug_can_access_memory (void *ptr, Bytecount len);
/* Defined in eval.c */
DECLARE_DOESNT_RETURN (signal_error (Lisp_Object, Lisp_Object));