diff options
| author | Paul Eggert | 2015-12-06 09:09:07 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-12-06 09:09:58 -0800 |
| commit | 302bbe00b31852942827dab42154f33411b99171 (patch) | |
| tree | 4d8a800f08f4283b4d3dbbfb1c47267efc2e11bc /src/alloc.c | |
| parent | 2b3f5de2b31b90733a88868b31bed3f7038f7055 (diff) | |
| download | emacs-302bbe00b31852942827dab42154f33411b99171.tar.gz emacs-302bbe00b31852942827dab42154f33411b99171.zip | |
Improve module interface when WIDE_EMACS_INT
* src/emacs-module.c (plain_values): New constant.
(module_nil): Now a constant.
(Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits)
(syms_of_module): Use if, not #ifdef, so that both sides are
checked at compile-time, and so that GCC doesn’t complain
about an unused var in the typical case. Also, depend on
plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume
that WIDE_EMACS_INT implies !USE_LSB_TAG.
(value_to_lisp_bits, lisp_to_value_bits): New functions.
Sign-extend integers rather than zero-extending them, as small
negative integers are more likely.
(value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits
functions.
(HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined.
(mark_modules): Remove. All uses removed.
(lisp_to_value): Don’t assume Fcons returns a pointer aligned
to GCALIGNMENT.
(syms_of_module): Check that module_nil converts to Qnil.
* src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since
we prefer signed to unsigned when either will do.
(TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is
a bit better for emacs-module.c.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/src/alloc.c b/src/alloc.c index e83b3836aa4..ea44c51d162 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -5567,10 +5567,6 @@ garbage_collect_1 (void *end) | |||
| 5567 | mark_fringe_data (); | 5567 | mark_fringe_data (); |
| 5568 | #endif | 5568 | #endif |
| 5569 | 5569 | ||
| 5570 | #ifdef HAVE_MODULES | ||
| 5571 | mark_modules (); | ||
| 5572 | #endif | ||
| 5573 | |||
| 5574 | /* Everything is now marked, except for the data in font caches, | 5570 | /* Everything is now marked, except for the data in font caches, |
| 5575 | undo lists, and finalizers. The first two are compacted by | 5571 | undo lists, and finalizers. The first two are compacted by |
| 5576 | removing an items which aren't reachable otherwise. */ | 5572 | removing an items which aren't reachable otherwise. */ |