diff options
| author | Dmitry Antipov | 2014-09-29 10:44:31 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-09-29 10:44:31 +0400 |
| commit | 71a72686e3e81253f2bc0ad74568aafdbd86879c (patch) | |
| tree | e2f2d44e9a01c782e71e8de88e3b345733c86fc7 /src/buffer.c | |
| parent | c3301e3c7f146a3aa017fa24f6ed240d6ecbafb4 (diff) | |
| download | emacs-71a72686e3e81253f2bc0ad74568aafdbd86879c.tar.gz emacs-71a72686e3e81253f2bc0ad74568aafdbd86879c.zip | |
Keep stack-allocated Lisp objects fast rather than versatile.
* configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove.
For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
* lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
(SCOPED_CONS_INITIALIZER): New macro.
(scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
(USE_LOCAL_ALLOCA): Remove.
(local_cons, local_list1, local_list2, local_list3, local_list4):
Remove. Stack overflow checking makes them too slow.
(make_local_vector): Likewise. Also we just don't have enough
users for it.
(enum LISP_STRING_OVERHEAD): Remove.
(local_string_init, local_vector_init): Remove prototypes.
(make_local_string, build_local_string): Redesign to target short
compile-time string constants, fall back to regular string allocation
where appropriate.
(lisp_string_size): New function.
(verify_ascii) [ENABLE_CHECKING]: Add prototype.
* alloc.c (local_string_init, local_vector_init): Remove.
(verify_ascii) [ENABLE_CHECKING]: New function.
* buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
* fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
* menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
* xselect.c, xterm.c: All related users changed.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/src/buffer.c b/src/buffer.c index 591f585a7a9..39d08950bf8 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1511,7 +1511,6 @@ list first, followed by the list of all buffers. If no other buffer | |||
| 1511 | exists, return the buffer `*scratch*' (creating it if necessary). */) | 1511 | exists, return the buffer `*scratch*' (creating it if necessary). */) |
| 1512 | (Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) | 1512 | (Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) |
| 1513 | { | 1513 | { |
| 1514 | USE_LOCAL_ALLOCA; | ||
| 1515 | struct frame *f = decode_any_frame (frame); | 1514 | struct frame *f = decode_any_frame (frame); |
| 1516 | Lisp_Object tail = f->buffer_list, pred = f->buffer_predicate; | 1515 | Lisp_Object tail = f->buffer_list, pred = f->buffer_predicate; |
| 1517 | Lisp_Object buf, notsogood = Qnil; | 1516 | Lisp_Object buf, notsogood = Qnil; |
| @@ -1570,7 +1569,6 @@ exists, return the buffer `*scratch*' (creating it if necessary). */) | |||
| 1570 | Lisp_Object | 1569 | Lisp_Object |
| 1571 | other_buffer_safely (Lisp_Object buffer) | 1570 | other_buffer_safely (Lisp_Object buffer) |
| 1572 | { | 1571 | { |
| 1573 | USE_LOCAL_ALLOCA; | ||
| 1574 | Lisp_Object tail, buf; | 1572 | Lisp_Object tail, buf; |
| 1575 | 1573 | ||
| 1576 | FOR_EACH_LIVE_BUFFER (tail, buf) | 1574 | FOR_EACH_LIVE_BUFFER (tail, buf) |
| @@ -5240,7 +5238,6 @@ init_buffer_once (void) | |||
| 5240 | void | 5238 | void |
| 5241 | init_buffer (int initialized) | 5239 | init_buffer (int initialized) |
| 5242 | { | 5240 | { |
| 5243 | USE_LOCAL_ALLOCA; | ||
| 5244 | char *pwd; | 5241 | char *pwd; |
| 5245 | Lisp_Object temp; | 5242 | Lisp_Object temp; |
| 5246 | ptrdiff_t len; | 5243 | ptrdiff_t len; |