diff options
| author | Stefan Monnier | 2009-11-06 18:47:48 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2009-11-06 18:47:48 +0000 |
| commit | 2de9f71c22f9def6adaa6782eea25bc569cb8561 (patch) | |
| tree | 399507700b025f007803c590ef825f5eea3f989d /src/buffer.c | |
| parent | 7ac65b38938cdee2916350bc0b16f21a00dca444 (diff) | |
| download | emacs-2de9f71c22f9def6adaa6782eea25bc569cb8561.tar.gz emacs-2de9f71c22f9def6adaa6782eea25bc569cb8561.zip | |
Let integers use up 2 tags to give them one extra bit and double their range.
* lisp.h (USE_2_TAGS_FOR_INTS): New macro.
(LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P): New macros.
(enum Lisp_Type): Use them. Give explicit values.
(Lisp_Type_Limit): Remove.
(XINT, XUINT, make_number) [!USE_LISP_UNION_TYPE]:
(MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
Pay attention to USE_2_TAGS_FOR_INTS.
(INTEGERP): Use LISP_INT_TAG_P.
* fns.c (internal_equal): Simplify the default case.
(sxhash): Use case_Lisp_Int.
* data.c (wrong_type_argument): Don't check against Lisp_Type_Limit any more.
(Ftype_of): Use case_Lisp_Int.
(store_symval_forwarding): Take into account the fact that Ints can
now have more than one tag.
* buffer.c (syms_of_buffer): Use LISP_INT_TAG.
buffer_slot_type_mismatch):
* xfaces.c (face_attr_equal_p):
* print.c (print_object):
* alloc.c (mark_maybe_object, mark_object, survives_gc_p): Use case_Lisp_Int.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/buffer.c b/src/buffer.c index 5359c7cf69c..c4e90363c6a 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -4573,7 +4573,7 @@ buffer_slot_type_mismatch (newval, type) | |||
| 4573 | 4573 | ||
| 4574 | switch (type) | 4574 | switch (type) |
| 4575 | { | 4575 | { |
| 4576 | case Lisp_Int: predicate = Qintegerp; break; | 4576 | case_Lisp_Int: predicate = Qintegerp; break; |
| 4577 | case Lisp_String: predicate = Qstringp; break; | 4577 | case Lisp_String: predicate = Qstringp; break; |
| 4578 | case Lisp_Symbol: predicate = Qsymbolp; break; | 4578 | case Lisp_Symbol: predicate = Qsymbolp; break; |
| 4579 | default: abort (); | 4579 | default: abort (); |
| @@ -5738,17 +5738,17 @@ Format with `format-mode-line' to produce a string value. */); | |||
| 5738 | doc: /* *Non-nil if searches and matches should ignore case. */); | 5738 | doc: /* *Non-nil if searches and matches should ignore case. */); |
| 5739 | 5739 | ||
| 5740 | DEFVAR_PER_BUFFER ("fill-column", ¤t_buffer->fill_column, | 5740 | DEFVAR_PER_BUFFER ("fill-column", ¤t_buffer->fill_column, |
| 5741 | make_number (Lisp_Int), | 5741 | make_number (LISP_INT_TAG), |
| 5742 | doc: /* *Column beyond which automatic line-wrapping should happen. | 5742 | doc: /* *Column beyond which automatic line-wrapping should happen. |
| 5743 | Interactively, you can set the buffer local value using \\[set-fill-column]. */); | 5743 | Interactively, you can set the buffer local value using \\[set-fill-column]. */); |
| 5744 | 5744 | ||
| 5745 | DEFVAR_PER_BUFFER ("left-margin", ¤t_buffer->left_margin, | 5745 | DEFVAR_PER_BUFFER ("left-margin", ¤t_buffer->left_margin, |
| 5746 | make_number (Lisp_Int), | 5746 | make_number (LISP_INT_TAG), |
| 5747 | doc: /* *Column for the default `indent-line-function' to indent to. | 5747 | doc: /* *Column for the default `indent-line-function' to indent to. |
| 5748 | Linefeed indents to this column in Fundamental mode. */); | 5748 | Linefeed indents to this column in Fundamental mode. */); |
| 5749 | 5749 | ||
| 5750 | DEFVAR_PER_BUFFER ("tab-width", ¤t_buffer->tab_width, | 5750 | DEFVAR_PER_BUFFER ("tab-width", ¤t_buffer->tab_width, |
| 5751 | make_number (Lisp_Int), | 5751 | make_number (LISP_INT_TAG), |
| 5752 | doc: /* *Distance between tab stops (for display of tab characters), in columns. */); | 5752 | doc: /* *Distance between tab stops (for display of tab characters), in columns. */); |
| 5753 | 5753 | ||
| 5754 | DEFVAR_PER_BUFFER ("ctl-arrow", ¤t_buffer->ctl_arrow, Qnil, | 5754 | DEFVAR_PER_BUFFER ("ctl-arrow", ¤t_buffer->ctl_arrow, Qnil, |
| @@ -5859,7 +5859,7 @@ If it is nil, that means don't auto-save this buffer. */); | |||
| 5859 | Backing up is done before the first time the file is saved. */); | 5859 | Backing up is done before the first time the file is saved. */); |
| 5860 | 5860 | ||
| 5861 | DEFVAR_PER_BUFFER ("buffer-saved-size", ¤t_buffer->save_length, | 5861 | DEFVAR_PER_BUFFER ("buffer-saved-size", ¤t_buffer->save_length, |
| 5862 | make_number (Lisp_Int), | 5862 | make_number (LISP_INT_TAG), |
| 5863 | doc: /* Length of current buffer when last read in, saved or auto-saved. | 5863 | doc: /* Length of current buffer when last read in, saved or auto-saved. |
| 5864 | 0 initially. | 5864 | 0 initially. |
| 5865 | -1 means auto-saving turned off until next real save. | 5865 | -1 means auto-saving turned off until next real save. |