diff options
| author | Stefan Monnier | 2003-09-11 22:22:11 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2003-09-11 22:22:11 +0000 |
| commit | 0930c1a1c8ac9398e71fd8e9ed7efb93dc41125f (patch) | |
| tree | e7fd15b3bb31c40abde660a24bb108c4a2af09df /src | |
| parent | 2a1c1d7150e64c0c05a1d1e17b288091cbd98011 (diff) | |
| download | emacs-0930c1a1c8ac9398e71fd8e9ed7efb93dc41125f.tar.gz emacs-0930c1a1c8ac9398e71fd8e9ed7efb93dc41125f.zip | |
(init_intervals, init_symbol, init_marker): Don't preallocate anything.
(Fgarbage_collect, mark_object): Ignore the markbit.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 37 | ||||
| -rw-r--r-- | src/alloc.c | 70 |
2 files changed, 35 insertions, 72 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 53bfee81eed..380d0d208f6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2003-09-11 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * alloc.c (init_intervals, init_symbol, init_marker): | ||
| 4 | Don't preallocate anything. | ||
| 5 | (Fgarbage_collect, mark_object): Ignore the markbit. | ||
| 6 | |||
| 7 | * bytecode.c (mark_byte_stack, unmark_byte_stack): Ignore the markbit. | ||
| 8 | |||
| 1 | 2003-09-08 Lute Kamstra <Lute.Kamstra@cwi.nl> | 9 | 2003-09-08 Lute Kamstra <Lute.Kamstra@cwi.nl> |
| 2 | 10 | ||
| 3 | * xdisp.c (pint2hrstr): New function. | 11 | * xdisp.c (pint2hrstr): New function. |
| @@ -12,8 +20,7 @@ | |||
| 12 | 20 | ||
| 13 | 2003-09-07 Eli Zaretskii <eliz@elta.co.il> | 21 | 2003-09-07 Eli Zaretskii <eliz@elta.co.il> |
| 14 | 22 | ||
| 15 | * editfns.c (region_limit): Support any non-zero value of | 23 | * editfns.c (region_limit): Support any non-zero value of BEGINNINGP. |
| 16 | BEGINNINGP. | ||
| 17 | 24 | ||
| 18 | 2003-09-03 Kim F. Storm <storm@cua.dk> | 25 | 2003-09-03 Kim F. Storm <storm@cua.dk> |
| 19 | 26 | ||
| @@ -54,9 +61,9 @@ | |||
| 54 | 61 | ||
| 55 | 2003-08-29 Gerd Moellmann <gerd.moellmann@t-online.de> | 62 | 2003-08-29 Gerd Moellmann <gerd.moellmann@t-online.de> |
| 56 | 63 | ||
| 57 | * xdisp.c (redisplay_internal): Fix change of 2003-04-30. Don't | 64 | * xdisp.c (redisplay_internal): Fix change of 2003-04-30. |
| 58 | tell redisplay display is accurate when it's actually been paused | 65 | Don't tell redisplay display is accurate when it's actually been |
| 59 | for pending input. | 66 | paused for pending input. |
| 60 | 67 | ||
| 61 | 2003-08-29 Richard M. Stallman <rms@gnu.org> | 68 | 2003-08-29 Richard M. Stallman <rms@gnu.org> |
| 62 | 69 | ||
| @@ -65,7 +72,7 @@ | |||
| 65 | 72 | ||
| 66 | * data.c (Fmake_variable_buffer_local, Fmake_local_variable) | 73 | * data.c (Fmake_variable_buffer_local, Fmake_local_variable) |
| 67 | (Fkill_local_variable, Fmake_variable_frame_local) | 74 | (Fkill_local_variable, Fmake_variable_frame_local) |
| 68 | (Flocal_variable_p, Flocal_variable_if_set_p): | 75 | (Flocal_variable_p, Flocal_variable_if_set_p): |
| 69 | Use indirect_variable to trace thru variable aliases. | 76 | Use indirect_variable to trace thru variable aliases. |
| 70 | 77 | ||
| 71 | * config.in: Updated. | 78 | * config.in: Updated. |
| @@ -82,7 +89,7 @@ | |||
| 82 | 89 | ||
| 83 | 2003-08-28 David Abrahams <dave@boost-consulting.com> (tiny change) | 90 | 2003-08-28 David Abrahams <dave@boost-consulting.com> (tiny change) |
| 84 | 91 | ||
| 85 | * coding.c (decode_coding_iso2022): Initialized local variable c2. | 92 | * coding.c (decode_coding_iso2022): Initialize local variable c2. |
| 86 | (decode_coding_sjis_big5): Likewise. | 93 | (decode_coding_sjis_big5): Likewise. |
| 87 | 94 | ||
| 88 | 2003-08-27 Jason Rumney <jasonr@gnu.org> | 95 | 2003-08-27 Jason Rumney <jasonr@gnu.org> |
| @@ -100,13 +107,11 @@ | |||
| 100 | 107 | ||
| 101 | 2003-08-24 Eli Zaretskii <eliz@elta.co.il> | 108 | 2003-08-24 Eli Zaretskii <eliz@elta.co.il> |
| 102 | 109 | ||
| 103 | * term.c (term_init): Remove `const' from buffer_size's | 110 | * term.c (term_init): Remove `const' from buffer_size's declaration. |
| 104 | declaration. | ||
| 105 | 111 | ||
| 106 | * Makefile.in (msdos.o): Depend on intervals.h. | 112 | * Makefile.in (msdos.o): Depend on intervals.h. |
| 107 | 113 | ||
| 108 | * msdos.c: Include intervals.h, since STRING_INTERVALS requires | 114 | * msdos.c: Include intervals.h, since STRING_INTERVALS requires that. |
| 109 | that. | ||
| 110 | 115 | ||
| 111 | 2003-08-21 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | 116 | 2003-08-21 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> |
| 112 | 117 | ||
| @@ -146,7 +151,7 @@ | |||
| 146 | (xmalloc, xfree): Declare. | 151 | (xmalloc, xfree): Declare. |
| 147 | (malloc): Don't declare. | 152 | (malloc): Don't declare. |
| 148 | 153 | ||
| 149 | * Makefile.in (LWLIB_OPTIONS): Removed (unused). | 154 | * Makefile.in (LWLIB_OPTIONS): Remove (unused). |
| 150 | (alloca.o): Remove obsolete stuff concerning alloca.s. Depend on | 155 | (alloca.o): Remove obsolete stuff concerning alloca.s. Depend on |
| 151 | atimer.h, blockinput.h. | 156 | atimer.h, blockinput.h. |
| 152 | 157 | ||
| @@ -175,8 +180,7 @@ | |||
| 175 | 180 | ||
| 176 | * puresize.h (BASE_PURESIZE): Increase to 1100000. | 181 | * puresize.h (BASE_PURESIZE): Increase to 1100000. |
| 177 | 182 | ||
| 178 | * buffer.c (Fmove_overlay): Set overlay's next pointer | 183 | * buffer.c (Fmove_overlay): Set overlay's next pointer unconditionally. |
| 179 | unconditionally. | ||
| 180 | 184 | ||
| 181 | 2003-08-16 Richard M. Stallman <rms@gnu.org> | 185 | 2003-08-16 Richard M. Stallman <rms@gnu.org> |
| 182 | 186 | ||
| @@ -190,7 +194,7 @@ | |||
| 190 | 2003-08-16 Juri Linkov <juri@jurta.org> (tiny change) | 194 | 2003-08-16 Juri Linkov <juri@jurta.org> (tiny change) |
| 191 | 195 | ||
| 192 | * syntax.c (Fforward_word): Argument changed to optional. | 196 | * syntax.c (Fforward_word): Argument changed to optional. |
| 193 | Set default value to 1. | 197 | Set default value to 1. |
| 194 | 198 | ||
| 195 | 2003-08-15 Kenichi Handa <handa@m17n.org> | 199 | 2003-08-15 Kenichi Handa <handa@m17n.org> |
| 196 | 200 | ||
| @@ -248,8 +252,7 @@ | |||
| 248 | 252 | ||
| 249 | 2003-07-28 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) | 253 | 2003-07-28 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) |
| 250 | 254 | ||
| 251 | * xfns.c (xic_set_preeditarea): Add the left fringe width to | 255 | * xfns.c (xic_set_preeditarea): Add the left fringe width to spot.x. |
| 252 | spot.x. | ||
| 253 | 256 | ||
| 254 | 2003-07-22 Stefan Monnier <monnier@cs.yale.edu> | 257 | 2003-07-22 Stefan Monnier <monnier@cs.yale.edu> |
| 255 | 258 | ||
diff --git a/src/alloc.c b/src/alloc.c index 332e63c4fd2..2c63c1cd07e 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -1131,14 +1131,10 @@ int n_interval_blocks; | |||
| 1131 | static void | 1131 | static void |
| 1132 | init_intervals () | 1132 | init_intervals () |
| 1133 | { | 1133 | { |
| 1134 | interval_block | 1134 | interval_block = NULL; |
| 1135 | = (struct interval_block *) lisp_malloc (sizeof *interval_block, | 1135 | interval_block_index = INTERVAL_BLOCK_SIZE; |
| 1136 | MEM_TYPE_NON_LISP); | ||
| 1137 | interval_block->next = 0; | ||
| 1138 | bzero ((char *) interval_block->intervals, sizeof interval_block->intervals); | ||
| 1139 | interval_block_index = 0; | ||
| 1140 | interval_free_list = 0; | 1136 | interval_free_list = 0; |
| 1141 | n_interval_blocks = 1; | 1137 | n_interval_blocks = 0; |
| 1142 | } | 1138 | } |
| 1143 | 1139 | ||
| 1144 | 1140 | ||
| @@ -2768,13 +2764,10 @@ int n_symbol_blocks; | |||
| 2768 | void | 2764 | void |
| 2769 | init_symbol () | 2765 | init_symbol () |
| 2770 | { | 2766 | { |
| 2771 | symbol_block = (struct symbol_block *) lisp_malloc (sizeof *symbol_block, | 2767 | symbol_block = NULL; |
| 2772 | MEM_TYPE_SYMBOL); | 2768 | symbol_block_index = SYMBOL_BLOCK_SIZE; |
| 2773 | symbol_block->next = 0; | ||
| 2774 | bzero ((char *) symbol_block->symbols, sizeof symbol_block->symbols); | ||
| 2775 | symbol_block_index = 0; | ||
| 2776 | symbol_free_list = 0; | 2769 | symbol_free_list = 0; |
| 2777 | n_symbol_blocks = 1; | 2770 | n_symbol_blocks = 0; |
| 2778 | } | 2771 | } |
| 2779 | 2772 | ||
| 2780 | 2773 | ||
| @@ -2854,13 +2847,11 @@ int n_marker_blocks; | |||
| 2854 | void | 2847 | void |
| 2855 | init_marker () | 2848 | init_marker () |
| 2856 | { | 2849 | { |
| 2857 | marker_block = (struct marker_block *) lisp_malloc (sizeof *marker_block, | 2850 | marker_block = NULL; |
| 2858 | MEM_TYPE_MISC); | 2851 | marker_block_index = MARKER_BLOCK_SIZE; |
| 2859 | marker_block->next = 0; | ||
| 2860 | bzero ((char *) marker_block->markers, sizeof marker_block->markers); | ||
| 2861 | marker_block_index = 0; | ||
| 2862 | marker_free_list = 0; | 2852 | marker_free_list = 0; |
| 2863 | n_marker_blocks = 1; | 2853 | n_marker_blocks = 0; |
| 2854 | fprintf(stderr, "union Lisp_Misc = %d\n", sizeof (union Lisp_Misc)); | ||
| 2864 | } | 2855 | } |
| 2865 | 2856 | ||
| 2866 | /* Return a newly allocated Lisp_Misc object, with no substructure. */ | 2857 | /* Return a newly allocated Lisp_Misc object, with no substructure. */ |
| @@ -4395,12 +4386,7 @@ returns nil, because real GC can't be done. */) | |||
| 4395 | 4386 | ||
| 4396 | /* clear_marks (); */ | 4387 | /* clear_marks (); */ |
| 4397 | 4388 | ||
| 4398 | /* Mark all the special slots that serve as the roots of accessibility. | 4389 | /* Mark all the special slots that serve as the roots of accessibility. */ |
| 4399 | |||
| 4400 | Usually the special slots to mark are contained in particular structures. | ||
| 4401 | Then we know no slot is marked twice because the structures don't overlap. | ||
| 4402 | In some cases, the structures point to the slots to be marked. | ||
| 4403 | For these, we use MARKBIT to avoid double marking of the slot. */ | ||
| 4404 | 4390 | ||
| 4405 | for (i = 0; i < staticidx; i++) | 4391 | for (i = 0; i < staticidx; i++) |
| 4406 | mark_object (*staticvec[i]); | 4392 | mark_object (*staticvec[i]); |
| @@ -4413,11 +4399,7 @@ returns nil, because real GC can't be done. */) | |||
| 4413 | register struct gcpro *tail; | 4399 | register struct gcpro *tail; |
| 4414 | for (tail = gcprolist; tail; tail = tail->next) | 4400 | for (tail = gcprolist; tail; tail = tail->next) |
| 4415 | for (i = 0; i < tail->nvars; i++) | 4401 | for (i = 0; i < tail->nvars; i++) |
| 4416 | if (!XMARKBIT (tail->var[i])) | 4402 | mark_object (tail->var[i]); |
| 4417 | { | ||
| 4418 | mark_object (tail->var[i]); | ||
| 4419 | XMARK (tail->var[i]); | ||
| 4420 | } | ||
| 4421 | } | 4403 | } |
| 4422 | #endif | 4404 | #endif |
| 4423 | 4405 | ||
| @@ -4439,21 +4421,14 @@ returns nil, because real GC can't be done. */) | |||
| 4439 | } | 4421 | } |
| 4440 | for (backlist = backtrace_list; backlist; backlist = backlist->next) | 4422 | for (backlist = backtrace_list; backlist; backlist = backlist->next) |
| 4441 | { | 4423 | { |
| 4442 | if (!XMARKBIT (*backlist->function)) | 4424 | mark_object (*backlist->function); |
| 4443 | { | 4425 | |
| 4444 | mark_object (*backlist->function); | ||
| 4445 | XMARK (*backlist->function); | ||
| 4446 | } | ||
| 4447 | if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) | 4426 | if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) |
| 4448 | i = 0; | 4427 | i = 0; |
| 4449 | else | 4428 | else |
| 4450 | i = backlist->nargs - 1; | 4429 | i = backlist->nargs - 1; |
| 4451 | for (; i >= 0; i--) | 4430 | for (; i >= 0; i--) |
| 4452 | if (!XMARKBIT (backlist->args[i])) | 4431 | mark_object (backlist->args[i]); |
| 4453 | { | ||
| 4454 | mark_object (backlist->args[i]); | ||
| 4455 | XMARK (backlist->args[i]); | ||
| 4456 | } | ||
| 4457 | } | 4432 | } |
| 4458 | mark_kboards (); | 4433 | mark_kboards (); |
| 4459 | 4434 | ||
| @@ -4519,24 +4494,10 @@ returns nil, because real GC can't be done. */) | |||
| 4519 | || GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES) | 4494 | || GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES) |
| 4520 | { | 4495 | { |
| 4521 | register struct gcpro *tail; | 4496 | register struct gcpro *tail; |
| 4522 | |||
| 4523 | for (tail = gcprolist; tail; tail = tail->next) | ||
| 4524 | for (i = 0; i < tail->nvars; i++) | ||
| 4525 | XUNMARK (tail->var[i]); | ||
| 4526 | } | 4497 | } |
| 4527 | #endif | 4498 | #endif |
| 4528 | 4499 | ||
| 4529 | unmark_byte_stack (); | 4500 | unmark_byte_stack (); |
| 4530 | for (backlist = backtrace_list; backlist; backlist = backlist->next) | ||
| 4531 | { | ||
| 4532 | XUNMARK (*backlist->function); | ||
| 4533 | if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) | ||
| 4534 | i = 0; | ||
| 4535 | else | ||
| 4536 | i = backlist->nargs - 1; | ||
| 4537 | for (; i >= 0; i--) | ||
| 4538 | XUNMARK (backlist->args[i]); | ||
| 4539 | } | ||
| 4540 | VECTOR_UNMARK (&buffer_defaults); | 4501 | VECTOR_UNMARK (&buffer_defaults); |
| 4541 | VECTOR_UNMARK (&buffer_local_symbols); | 4502 | VECTOR_UNMARK (&buffer_local_symbols); |
| 4542 | 4503 | ||
| @@ -4721,7 +4682,6 @@ mark_object (arg) | |||
| 4721 | int cdr_count = 0; | 4682 | int cdr_count = 0; |
| 4722 | 4683 | ||
| 4723 | loop: | 4684 | loop: |
| 4724 | XUNMARK (obj); | ||
| 4725 | 4685 | ||
| 4726 | if (PURE_POINTER_P (XPNTR (obj))) | 4686 | if (PURE_POINTER_P (XPNTR (obj))) |
| 4727 | return; | 4687 | return; |