diff options
| -rw-r--r-- | etc/NEWS | 2 | ||||
| -rw-r--r-- | lib-src/ChangeLog | 7 | ||||
| -rw-r--r-- | lib-src/update-game-score.c | 5 | ||||
| -rw-r--r-- | lisp/ChangeLog | 10 | ||||
| -rw-r--r-- | lisp/bindings.el | 1 | ||||
| -rw-r--r-- | lisp/frame.el | 22 | ||||
| -rw-r--r-- | lisp/scroll-all.el | 1 | ||||
| -rw-r--r-- | lisp/window.el | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 26 | ||||
| -rw-r--r-- | src/alloc.c | 79 | ||||
| -rw-r--r-- | src/buffer.c | 11 | ||||
| -rw-r--r-- | src/lisp.h | 37 | ||||
| -rw-r--r-- | src/m/ia64.h | 10 |
13 files changed, 124 insertions, 89 deletions
| @@ -47,6 +47,8 @@ prompts for a column number. | |||
| 47 | ** `C-M-f' and `C-M-b' will now move to the path name separator | 47 | ** `C-M-f' and `C-M-b' will now move to the path name separator |
| 48 | character when doing minibuffer filename prompts. | 48 | character when doing minibuffer filename prompts. |
| 49 | 49 | ||
| 50 | ** `goto-char' is now bound to `M-g c'. | ||
| 51 | |||
| 50 | 52 | ||
| 51 | * Changes in Specialized Modes and Packages in Emacs 24.2 | 53 | * Changes in Specialized Modes and Packages in Emacs 24.2 |
| 52 | 54 | ||
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index ac3e0a612e2..ea5f5a26627 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2012-04-16 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Assume less-ancient POSIX support. | ||
| 4 | * update-game-score.c: Include <getopt.h> rather than rolling our | ||
| 5 | own decls for optarg, optind, opterr. See | ||
| 6 | <http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html>. | ||
| 7 | |||
| 1 | 2012-04-14 Juanma Barranquero <lekktu@gmail.com> | 8 | 2012-04-14 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 9 | ||
| 3 | * emacsclient.c (decode_options) [WINDOWSNT]: | 10 | * emacsclient.c (decode_options) [WINDOWSNT]: |
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index a32bd6d8d78..e0c940510be 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c | |||
| @@ -46,10 +46,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 46 | #include <fcntl.h> | 46 | #include <fcntl.h> |
| 47 | #endif | 47 | #endif |
| 48 | #include <sys/stat.h> | 48 | #include <sys/stat.h> |
| 49 | 49 | #include <getopt.h> | |
| 50 | /* Needed for SunOS4, for instance. */ | ||
| 51 | extern char *optarg; | ||
| 52 | extern int optind, opterr; | ||
| 53 | 50 | ||
| 54 | static int usage (int err) NO_RETURN; | 51 | static int usage (int err) NO_RETURN; |
| 55 | 52 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b2a3f135109..a21d5841346 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2012-04-15 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * frame.el (scrolling): Remove nearly unused customization group. | ||
| 4 | |||
| 5 | * scroll-all.el (scroll-all-mode): Move to windows group. | ||
| 6 | |||
| 7 | 2012-04-15 Chong Yidong <cyd@gnu.org> | ||
| 8 | |||
| 9 | * bindings.el (goto-map): Bind goto-char to M-g c (Bug#11240). | ||
| 10 | |||
| 1 | 2012-04-15 Stefan Monnier <monnier@iro.umontreal.ca> | 11 | 2012-04-15 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 12 | ||
| 3 | Avoid the use of ((lambda ...) ...) in lexical-binding code. | 13 | Avoid the use of ((lambda ...) ...) in lexical-binding code. |
diff --git a/lisp/bindings.el b/lisp/bindings.el index a87f321c936..8cfeecf5b40 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -868,6 +868,7 @@ if `inhibit-field-text-motion' is non-nil." | |||
| 868 | "Keymap for navigation commands.") | 868 | "Keymap for navigation commands.") |
| 869 | (define-key esc-map "g" goto-map) | 869 | (define-key esc-map "g" goto-map) |
| 870 | 870 | ||
| 871 | (define-key goto-map "c" 'goto-char) | ||
| 871 | (define-key goto-map "g" 'goto-line) | 872 | (define-key goto-map "g" 'goto-line) |
| 872 | (define-key goto-map "\M-g" 'goto-line) | 873 | (define-key goto-map "\M-g" 'goto-line) |
| 873 | (define-key goto-map "n" 'next-error) | 874 | (define-key goto-map "n" 'next-error) |
diff --git a/lisp/frame.el b/lisp/frame.el index 1cd6c0cf181..79e1243c7af 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -1557,21 +1557,6 @@ left untouched. FRAME nil or omitted means use the selected frame." | |||
| 1557 | 'delete-frame-functions "22.1") | 1557 | 'delete-frame-functions "22.1") |
| 1558 | 1558 | ||
| 1559 | 1559 | ||
| 1560 | ;; Highlighting trailing whitespace. | ||
| 1561 | |||
| 1562 | (make-variable-buffer-local 'show-trailing-whitespace) | ||
| 1563 | |||
| 1564 | |||
| 1565 | ;; Scrolling | ||
| 1566 | |||
| 1567 | (defgroup scrolling nil | ||
| 1568 | "Scrolling windows." | ||
| 1569 | :version "21.1" | ||
| 1570 | :group 'frames) | ||
| 1571 | |||
| 1572 | (defvaralias 'automatic-hscrolling 'auto-hscroll-mode) | ||
| 1573 | |||
| 1574 | |||
| 1575 | ;; Blinking cursor | 1560 | ;; Blinking cursor |
| 1576 | 1561 | ||
| 1577 | (defgroup cursor nil | 1562 | (defgroup cursor nil |
| @@ -1663,6 +1648,13 @@ terminals, cursor blinking is controlled by the terminal." | |||
| 1663 | (define-key ctl-x-5-map "0" 'delete-frame) | 1648 | (define-key ctl-x-5-map "0" 'delete-frame) |
| 1664 | (define-key ctl-x-5-map "o" 'other-frame) | 1649 | (define-key ctl-x-5-map "o" 'other-frame) |
| 1665 | 1650 | ||
| 1651 | |||
| 1652 | ;; Misc. | ||
| 1653 | |||
| 1654 | (defvaralias 'automatic-hscrolling 'auto-hscroll-mode) | ||
| 1655 | |||
| 1656 | (make-variable-buffer-local 'show-trailing-whitespace) | ||
| 1657 | |||
| 1666 | (provide 'frame) | 1658 | (provide 'frame) |
| 1667 | 1659 | ||
| 1668 | ;;; frame.el ends here | 1660 | ;;; frame.el ends here |
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el index 9ff0a61db2f..fed886c2b55 100644 --- a/lisp/scroll-all.el +++ b/lisp/scroll-all.el | |||
| @@ -111,7 +111,6 @@ one window apply to all visible windows in the same frame." | |||
| 111 | nil " *SL*" nil | 111 | nil " *SL*" nil |
| 112 | :global t | 112 | :global t |
| 113 | :group 'windows | 113 | :group 'windows |
| 114 | :group 'scrolling | ||
| 115 | (if scroll-all-mode | 114 | (if scroll-all-mode |
| 116 | (add-hook 'post-command-hook 'scroll-all-check-to-scroll) | 115 | (add-hook 'post-command-hook 'scroll-all-check-to-scroll) |
| 117 | (remove-hook 'post-command-hook 'scroll-all-check-to-scroll))) | 116 | (remove-hook 'post-command-hook 'scroll-all-check-to-scroll))) |
diff --git a/lisp/window.el b/lisp/window.el index ca2cc9e7950..934b6067d08 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -5443,7 +5443,7 @@ A value of t means point moves to the beginning or the end of the buffer | |||
| 5443 | \(depending on scrolling direction) when no more scrolling possible. | 5443 | \(depending on scrolling direction) when no more scrolling possible. |
| 5444 | When point is already on that position, then signal an error." | 5444 | When point is already on that position, then signal an error." |
| 5445 | :type 'boolean | 5445 | :type 'boolean |
| 5446 | :group 'scrolling | 5446 | :group 'windows |
| 5447 | :version "24.1") | 5447 | :version "24.1") |
| 5448 | 5448 | ||
| 5449 | (defun scroll-up-command (&optional arg) | 5449 | (defun scroll-up-command (&optional arg) |
diff --git a/src/ChangeLog b/src/ChangeLog index c58b87c7705..0fa21336900 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,29 @@ | |||
| 1 | 2012-04-16 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Improve ralloc.c interface checking. | ||
| 4 | See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html | ||
| 5 | * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc) | ||
| 6 | (r_alloc_free) [REL_ALLOC]: Move decls from here ... | ||
| 7 | * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable) | ||
| 8 | [REL_ALLOC]: ... to here, to check interface. | ||
| 9 | * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]: | ||
| 10 | Remove decls. This fixes an "It stinks!". | ||
| 11 | |||
| 12 | * alloc.c (which_symbols): Fix alignment issue / type clash. | ||
| 13 | |||
| 14 | 2012-04-15 Andreas Schwab <schwab@linux-m68k.org> | ||
| 15 | |||
| 16 | * lisp.h (struct Lisp_Symbol): Remove explicit padding. | ||
| 17 | (struct Lisp_Misc_Any): Likewise. | ||
| 18 | (struct Lisp_Free): Likewise. | ||
| 19 | * alloc.c (union aligned_Lisp_Symbol): Define. | ||
| 20 | (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union | ||
| 21 | aligned_Lisp_Symbol instead of struct Lisp_Symbol. | ||
| 22 | (union aligned_Lisp_Misc): Define. | ||
| 23 | (MARKER_BLOCK_SIZE, struct marker_block): Use union | ||
| 24 | aligned_Lisp_Misc instead of union Lisp_Misc. | ||
| 25 | (Fmake_symbol, allocate_misc, gc_sweep): Adjust | ||
| 26 | |||
| 1 | 2012-04-14 Paul Eggert <eggert@cs.ucla.edu> | 27 | 2012-04-14 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 28 | ||
| 3 | Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926). | 29 | Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926). |
diff --git a/src/alloc.c b/src/alloc.c index 314438ba9f1..0e68817629c 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3136,17 +3136,29 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT | |||
| 3136 | Symbol Allocation | 3136 | Symbol Allocation |
| 3137 | ***********************************************************************/ | 3137 | ***********************************************************************/ |
| 3138 | 3138 | ||
| 3139 | /* Like struct Lisp_Symbol, but padded so that the size is a multiple | ||
| 3140 | of the required alignment if LSB tags are used. */ | ||
| 3141 | |||
| 3142 | union aligned_Lisp_Symbol | ||
| 3143 | { | ||
| 3144 | struct Lisp_Symbol s; | ||
| 3145 | #ifdef USE_LSB_TAG | ||
| 3146 | unsigned char c[(sizeof (struct Lisp_Symbol) + (1 << GCTYPEBITS) - 1) | ||
| 3147 | & -(1 << GCTYPEBITS)]; | ||
| 3148 | #endif | ||
| 3149 | }; | ||
| 3150 | |||
| 3139 | /* Each symbol_block is just under 1020 bytes long, since malloc | 3151 | /* Each symbol_block is just under 1020 bytes long, since malloc |
| 3140 | really allocates in units of powers of two and uses 4 bytes for its | 3152 | really allocates in units of powers of two and uses 4 bytes for its |
| 3141 | own overhead. */ | 3153 | own overhead. */ |
| 3142 | 3154 | ||
| 3143 | #define SYMBOL_BLOCK_SIZE \ | 3155 | #define SYMBOL_BLOCK_SIZE \ |
| 3144 | ((1020 - sizeof (struct symbol_block *)) / sizeof (struct Lisp_Symbol)) | 3156 | ((1020 - sizeof (struct symbol_block *)) / sizeof (union aligned_Lisp_Symbol)) |
| 3145 | 3157 | ||
| 3146 | struct symbol_block | 3158 | struct symbol_block |
| 3147 | { | 3159 | { |
| 3148 | /* Place `symbols' first, to preserve alignment. */ | 3160 | /* Place `symbols' first, to preserve alignment. */ |
| 3149 | struct Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE]; | 3161 | union aligned_Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE]; |
| 3150 | struct symbol_block *next; | 3162 | struct symbol_block *next; |
| 3151 | }; | 3163 | }; |
| 3152 | 3164 | ||
| @@ -3202,7 +3214,7 @@ Its value and function definition are void, and its property list is nil. */) | |||
| 3202 | symbol_block = new; | 3214 | symbol_block = new; |
| 3203 | symbol_block_index = 0; | 3215 | symbol_block_index = 0; |
| 3204 | } | 3216 | } |
| 3205 | XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]); | 3217 | XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index].s); |
| 3206 | symbol_block_index++; | 3218 | symbol_block_index++; |
| 3207 | } | 3219 | } |
| 3208 | 3220 | ||
| @@ -3230,16 +3242,28 @@ Its value and function definition are void, and its property list is nil. */) | |||
| 3230 | Marker (Misc) Allocation | 3242 | Marker (Misc) Allocation |
| 3231 | ***********************************************************************/ | 3243 | ***********************************************************************/ |
| 3232 | 3244 | ||
| 3245 | /* Like union Lisp_Misc, but padded so that its size is a multiple of | ||
| 3246 | the required alignment when LSB tags are used. */ | ||
| 3247 | |||
| 3248 | union aligned_Lisp_Misc | ||
| 3249 | { | ||
| 3250 | union Lisp_Misc m; | ||
| 3251 | #ifdef USE_LSB_TAG | ||
| 3252 | unsigned char c[(sizeof (union Lisp_Misc) + (1 << GCTYPEBITS) - 1) | ||
| 3253 | & -(1 << GCTYPEBITS)]; | ||
| 3254 | #endif | ||
| 3255 | }; | ||
| 3256 | |||
| 3233 | /* Allocation of markers and other objects that share that structure. | 3257 | /* Allocation of markers and other objects that share that structure. |
| 3234 | Works like allocation of conses. */ | 3258 | Works like allocation of conses. */ |
| 3235 | 3259 | ||
| 3236 | #define MARKER_BLOCK_SIZE \ | 3260 | #define MARKER_BLOCK_SIZE \ |
| 3237 | ((1020 - sizeof (struct marker_block *)) / sizeof (union Lisp_Misc)) | 3261 | ((1020 - sizeof (struct marker_block *)) / sizeof (union aligned_Lisp_Misc)) |
| 3238 | 3262 | ||
| 3239 | struct marker_block | 3263 | struct marker_block |
| 3240 | { | 3264 | { |
| 3241 | /* Place `markers' first, to preserve alignment. */ | 3265 | /* Place `markers' first, to preserve alignment. */ |
| 3242 | union Lisp_Misc markers[MARKER_BLOCK_SIZE]; | 3266 | union aligned_Lisp_Misc markers[MARKER_BLOCK_SIZE]; |
| 3243 | struct marker_block *next; | 3267 | struct marker_block *next; |
| 3244 | }; | 3268 | }; |
| 3245 | 3269 | ||
| @@ -3284,7 +3308,7 @@ allocate_misc (void) | |||
| 3284 | marker_block_index = 0; | 3308 | marker_block_index = 0; |
| 3285 | total_free_markers += MARKER_BLOCK_SIZE; | 3309 | total_free_markers += MARKER_BLOCK_SIZE; |
| 3286 | } | 3310 | } |
| 3287 | XSETMISC (val, &marker_block->markers[marker_block_index]); | 3311 | XSETMISC (val, &marker_block->markers[marker_block_index].m); |
| 3288 | marker_block_index++; | 3312 | marker_block_index++; |
| 3289 | } | 3313 | } |
| 3290 | 3314 | ||
| @@ -6070,22 +6094,22 @@ gc_sweep (void) | |||
| 6070 | for (sblk = symbol_block; sblk; sblk = *sprev) | 6094 | for (sblk = symbol_block; sblk; sblk = *sprev) |
| 6071 | { | 6095 | { |
| 6072 | int this_free = 0; | 6096 | int this_free = 0; |
| 6073 | struct Lisp_Symbol *sym = sblk->symbols; | 6097 | union aligned_Lisp_Symbol *sym = sblk->symbols; |
| 6074 | struct Lisp_Symbol *end = sym + lim; | 6098 | union aligned_Lisp_Symbol *end = sym + lim; |
| 6075 | 6099 | ||
| 6076 | for (; sym < end; ++sym) | 6100 | for (; sym < end; ++sym) |
| 6077 | { | 6101 | { |
| 6078 | /* Check if the symbol was created during loadup. In such a case | 6102 | /* Check if the symbol was created during loadup. In such a case |
| 6079 | it might be pointed to by pure bytecode which we don't trace, | 6103 | it might be pointed to by pure bytecode which we don't trace, |
| 6080 | so we conservatively assume that it is live. */ | 6104 | so we conservatively assume that it is live. */ |
| 6081 | int pure_p = PURE_POINTER_P (XSTRING (sym->xname)); | 6105 | int pure_p = PURE_POINTER_P (XSTRING (sym->s.xname)); |
| 6082 | 6106 | ||
| 6083 | if (!sym->gcmarkbit && !pure_p) | 6107 | if (!sym->s.gcmarkbit && !pure_p) |
| 6084 | { | 6108 | { |
| 6085 | if (sym->redirect == SYMBOL_LOCALIZED) | 6109 | if (sym->s.redirect == SYMBOL_LOCALIZED) |
| 6086 | xfree (SYMBOL_BLV (sym)); | 6110 | xfree (SYMBOL_BLV (&sym->s)); |
| 6087 | sym->next = symbol_free_list; | 6111 | sym->s.next = symbol_free_list; |
| 6088 | symbol_free_list = sym; | 6112 | symbol_free_list = &sym->s; |
| 6089 | #if GC_MARK_STACK | 6113 | #if GC_MARK_STACK |
| 6090 | symbol_free_list->function = Vdead; | 6114 | symbol_free_list->function = Vdead; |
| 6091 | #endif | 6115 | #endif |
| @@ -6095,8 +6119,8 @@ gc_sweep (void) | |||
| 6095 | { | 6119 | { |
| 6096 | ++num_used; | 6120 | ++num_used; |
| 6097 | if (!pure_p) | 6121 | if (!pure_p) |
| 6098 | UNMARK_STRING (XSTRING (sym->xname)); | 6122 | UNMARK_STRING (XSTRING (sym->s.xname)); |
| 6099 | sym->gcmarkbit = 0; | 6123 | sym->s.gcmarkbit = 0; |
| 6100 | } | 6124 | } |
| 6101 | } | 6125 | } |
| 6102 | 6126 | ||
| @@ -6108,7 +6132,7 @@ gc_sweep (void) | |||
| 6108 | { | 6132 | { |
| 6109 | *sprev = sblk->next; | 6133 | *sprev = sblk->next; |
| 6110 | /* Unhook from the free list. */ | 6134 | /* Unhook from the free list. */ |
| 6111 | symbol_free_list = sblk->symbols[0].next; | 6135 | symbol_free_list = sblk->symbols[0].s.next; |
| 6112 | lisp_free (sblk); | 6136 | lisp_free (sblk); |
| 6113 | } | 6137 | } |
| 6114 | else | 6138 | else |
| @@ -6138,22 +6162,22 @@ gc_sweep (void) | |||
| 6138 | 6162 | ||
| 6139 | for (i = 0; i < lim; i++) | 6163 | for (i = 0; i < lim; i++) |
| 6140 | { | 6164 | { |
| 6141 | if (!mblk->markers[i].u_any.gcmarkbit) | 6165 | if (!mblk->markers[i].m.u_any.gcmarkbit) |
| 6142 | { | 6166 | { |
| 6143 | if (mblk->markers[i].u_any.type == Lisp_Misc_Marker) | 6167 | if (mblk->markers[i].m.u_any.type == Lisp_Misc_Marker) |
| 6144 | unchain_marker (&mblk->markers[i].u_marker); | 6168 | unchain_marker (&mblk->markers[i].m.u_marker); |
| 6145 | /* Set the type of the freed object to Lisp_Misc_Free. | 6169 | /* Set the type of the freed object to Lisp_Misc_Free. |
| 6146 | We could leave the type alone, since nobody checks it, | 6170 | We could leave the type alone, since nobody checks it, |
| 6147 | but this might catch bugs faster. */ | 6171 | but this might catch bugs faster. */ |
| 6148 | mblk->markers[i].u_marker.type = Lisp_Misc_Free; | 6172 | mblk->markers[i].m.u_marker.type = Lisp_Misc_Free; |
| 6149 | mblk->markers[i].u_free.chain = marker_free_list; | 6173 | mblk->markers[i].m.u_free.chain = marker_free_list; |
| 6150 | marker_free_list = &mblk->markers[i]; | 6174 | marker_free_list = &mblk->markers[i].m; |
| 6151 | this_free++; | 6175 | this_free++; |
| 6152 | } | 6176 | } |
| 6153 | else | 6177 | else |
| 6154 | { | 6178 | { |
| 6155 | num_used++; | 6179 | num_used++; |
| 6156 | mblk->markers[i].u_any.gcmarkbit = 0; | 6180 | mblk->markers[i].m.u_any.gcmarkbit = 0; |
| 6157 | } | 6181 | } |
| 6158 | } | 6182 | } |
| 6159 | lim = MARKER_BLOCK_SIZE; | 6183 | lim = MARKER_BLOCK_SIZE; |
| @@ -6164,7 +6188,7 @@ gc_sweep (void) | |||
| 6164 | { | 6188 | { |
| 6165 | *mprev = mblk->next; | 6189 | *mprev = mblk->next; |
| 6166 | /* Unhook from the free list. */ | 6190 | /* Unhook from the free list. */ |
| 6167 | marker_free_list = mblk->markers[0].u_free.chain; | 6191 | marker_free_list = mblk->markers[0].m.u_free.chain; |
| 6168 | lisp_free (mblk); | 6192 | lisp_free (mblk); |
| 6169 | } | 6193 | } |
| 6170 | else | 6194 | else |
| @@ -6296,11 +6320,12 @@ which_symbols (Lisp_Object obj, EMACS_INT find_max) | |||
| 6296 | { | 6320 | { |
| 6297 | for (sblk = symbol_block; sblk; sblk = sblk->next) | 6321 | for (sblk = symbol_block; sblk; sblk = sblk->next) |
| 6298 | { | 6322 | { |
| 6299 | struct Lisp_Symbol *sym = sblk->symbols; | 6323 | union aligned_Lisp_Symbol *aligned_sym = sblk->symbols; |
| 6300 | int bn; | 6324 | int bn; |
| 6301 | 6325 | ||
| 6302 | for (bn = 0; bn < SYMBOL_BLOCK_SIZE; bn++, sym++) | 6326 | for (bn = 0; bn < SYMBOL_BLOCK_SIZE; bn++, aligned_sym++) |
| 6303 | { | 6327 | { |
| 6328 | struct Lisp_Symbol *sym = &aligned_sym->s; | ||
| 6304 | Lisp_Object val; | 6329 | Lisp_Object val; |
| 6305 | Lisp_Object tem; | 6330 | Lisp_Object tem; |
| 6306 | 6331 | ||
diff --git a/src/buffer.c b/src/buffer.c index ca8d1ec5db3..9bac3ec742b 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -2006,10 +2006,6 @@ advance_to_char_boundary (EMACS_INT byte_pos) | |||
| 2006 | return byte_pos; | 2006 | return byte_pos; |
| 2007 | } | 2007 | } |
| 2008 | 2008 | ||
| 2009 | #ifdef REL_ALLOC | ||
| 2010 | extern void r_alloc_reset_variable (POINTER_TYPE *, POINTER_TYPE *); | ||
| 2011 | #endif /* REL_ALLOC */ | ||
| 2012 | |||
| 2013 | DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text, | 2009 | DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text, |
| 2014 | 1, 1, 0, | 2010 | 1, 1, 0, |
| 2015 | doc: /* Swap the text between current buffer and BUFFER. */) | 2011 | doc: /* Swap the text between current buffer and BUFFER. */) |
| @@ -4771,13 +4767,6 @@ mmap_realloc (POINTER_TYPE **var, size_t nbytes) | |||
| 4771 | Buffer-text Allocation | 4767 | Buffer-text Allocation |
| 4772 | ***********************************************************************/ | 4768 | ***********************************************************************/ |
| 4773 | 4769 | ||
| 4774 | #ifdef REL_ALLOC | ||
| 4775 | extern POINTER_TYPE *r_alloc (POINTER_TYPE **, size_t); | ||
| 4776 | extern POINTER_TYPE *r_re_alloc (POINTER_TYPE **, size_t); | ||
| 4777 | extern void r_alloc_free (POINTER_TYPE **ptr); | ||
| 4778 | #endif /* REL_ALLOC */ | ||
| 4779 | |||
| 4780 | |||
| 4781 | /* Allocate NBYTES bytes for buffer B's text buffer. */ | 4770 | /* Allocate NBYTES bytes for buffer B's text buffer. */ |
| 4782 | 4771 | ||
| 4783 | static void | 4772 | static void |
diff --git a/src/lisp.h b/src/lisp.h index 0d66f57fdb1..37fa81b63f6 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -1138,8 +1138,6 @@ struct Lisp_Symbol | |||
| 1138 | special (with `defvar' etc), and shouldn't be lexically bound. */ | 1138 | special (with `defvar' etc), and shouldn't be lexically bound. */ |
| 1139 | unsigned declared_special : 1; | 1139 | unsigned declared_special : 1; |
| 1140 | 1140 | ||
| 1141 | unsigned spacer : 23; | ||
| 1142 | |||
| 1143 | /* The symbol's name, as a Lisp string. | 1141 | /* The symbol's name, as a Lisp string. |
| 1144 | The name "xname" is used to intentionally break code referring to | 1142 | The name "xname" is used to intentionally break code referring to |
| 1145 | the old field "name" of type pointer to struct Lisp_String. */ | 1143 | the old field "name" of type pointer to struct Lisp_String. */ |
| @@ -1341,8 +1339,6 @@ struct Lisp_Misc_Any /* Supertype of all Misc types. */ | |||
| 1341 | ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */ | 1339 | ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */ |
| 1342 | unsigned gcmarkbit : 1; | 1340 | unsigned gcmarkbit : 1; |
| 1343 | int spacer : 15; | 1341 | int spacer : 15; |
| 1344 | /* Make it as long as "Lisp_Free without padding". */ | ||
| 1345 | void *fill; | ||
| 1346 | }; | 1342 | }; |
| 1347 | 1343 | ||
| 1348 | struct Lisp_Marker | 1344 | struct Lisp_Marker |
| @@ -1534,13 +1530,6 @@ struct Lisp_Free | |||
| 1534 | unsigned gcmarkbit : 1; | 1530 | unsigned gcmarkbit : 1; |
| 1535 | int spacer : 15; | 1531 | int spacer : 15; |
| 1536 | union Lisp_Misc *chain; | 1532 | union Lisp_Misc *chain; |
| 1537 | #ifdef USE_LSB_TAG | ||
| 1538 | /* Try to make sure that sizeof(Lisp_Misc) preserves TYPEBITS-alignment. | ||
| 1539 | This assumes that Lisp_Marker is the largest of the alternatives and | ||
| 1540 | that Lisp_Misc_Any has the same size as "Lisp_Free w/o padding". */ | ||
| 1541 | char padding[((((sizeof (struct Lisp_Marker) - 1) >> GCTYPEBITS) + 1) | ||
| 1542 | << GCTYPEBITS) - sizeof (struct Lisp_Misc_Any)]; | ||
| 1543 | #endif | ||
| 1544 | }; | 1533 | }; |
| 1545 | 1534 | ||
| 1546 | /* To get the type field of a union Lisp_Misc, use XMISCTYPE. | 1535 | /* To get the type field of a union Lisp_Misc, use XMISCTYPE. |
| @@ -1549,19 +1538,19 @@ struct Lisp_Free | |||
| 1549 | union Lisp_Misc | 1538 | union Lisp_Misc |
| 1550 | { | 1539 | { |
| 1551 | struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */ | 1540 | struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */ |
| 1552 | struct Lisp_Free u_free; /* Includes padding to force alignment. */ | 1541 | struct Lisp_Free u_free; |
| 1553 | struct Lisp_Marker u_marker; /* 5 */ | 1542 | struct Lisp_Marker u_marker; |
| 1554 | struct Lisp_Overlay u_overlay; /* 5 */ | 1543 | struct Lisp_Overlay u_overlay; |
| 1555 | struct Lisp_Save_Value u_save_value; /* 3 */ | 1544 | struct Lisp_Save_Value u_save_value; |
| 1556 | }; | 1545 | }; |
| 1557 | 1546 | ||
| 1558 | union Lisp_Fwd | 1547 | union Lisp_Fwd |
| 1559 | { | 1548 | { |
| 1560 | struct Lisp_Intfwd u_intfwd; /* 2 */ | 1549 | struct Lisp_Intfwd u_intfwd; |
| 1561 | struct Lisp_Boolfwd u_boolfwd; /* 2 */ | 1550 | struct Lisp_Boolfwd u_boolfwd; |
| 1562 | struct Lisp_Objfwd u_objfwd; /* 2 */ | 1551 | struct Lisp_Objfwd u_objfwd; |
| 1563 | struct Lisp_Buffer_Objfwd u_buffer_objfwd; /* 2 */ | 1552 | struct Lisp_Buffer_Objfwd u_buffer_objfwd; |
| 1564 | struct Lisp_Kboard_Objfwd u_kboard_objfwd; /* 2 */ | 1553 | struct Lisp_Kboard_Objfwd u_kboard_objfwd; |
| 1565 | }; | 1554 | }; |
| 1566 | 1555 | ||
| 1567 | /* Lisp floating point type */ | 1556 | /* Lisp floating point type */ |
| @@ -2847,6 +2836,14 @@ extern void syms_of_alloc (void); | |||
| 2847 | extern struct buffer * allocate_buffer (void); | 2836 | extern struct buffer * allocate_buffer (void); |
| 2848 | extern int valid_lisp_object_p (Lisp_Object); | 2837 | extern int valid_lisp_object_p (Lisp_Object); |
| 2849 | 2838 | ||
| 2839 | #ifdef REL_ALLOC | ||
| 2840 | /* Defined in ralloc.c */ | ||
| 2841 | extern void *r_alloc (void **, size_t); | ||
| 2842 | extern void r_alloc_free (void **); | ||
| 2843 | extern void *r_re_alloc (void **, size_t); | ||
| 2844 | extern void r_alloc_reset_variable (void **, void **); | ||
| 2845 | #endif | ||
| 2846 | |||
| 2850 | /* Defined in chartab.c */ | 2847 | /* Defined in chartab.c */ |
| 2851 | EXFUN (Fmake_char_table, 2); | 2848 | EXFUN (Fmake_char_table, 2); |
| 2852 | EXFUN (Fset_char_table_parent, 2); | 2849 | EXFUN (Fset_char_table_parent, 2); |
diff --git a/src/m/ia64.h b/src/m/ia64.h index 2ddc2fdfb17..47df94cedd0 100644 --- a/src/m/ia64.h +++ b/src/m/ia64.h | |||
| @@ -30,13 +30,3 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 30 | #define EMACS_INT long | 30 | #define EMACS_INT long |
| 31 | #define pI "l" | 31 | #define pI "l" |
| 32 | #define EMACS_UINT unsigned long | 32 | #define EMACS_UINT unsigned long |
| 33 | |||
| 34 | #ifdef REL_ALLOC | ||
| 35 | #ifndef _MALLOC_INTERNAL | ||
| 36 | /* "char *" because ralloc.c defines it that way. gmalloc.c thinks it | ||
| 37 | is allowed to prototype these as "void *" so we don't prototype in | ||
| 38 | that case. You're right: it stinks! */ | ||
| 39 | extern char *r_alloc (), *r_re_alloc (); | ||
| 40 | extern void r_alloc_free (); | ||
| 41 | #endif /* not _MALLOC_INTERNAL */ | ||
| 42 | #endif /* REL_ALLOC */ | ||