aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2003-09-11 22:22:11 +0000
committerStefan Monnier2003-09-11 22:22:11 +0000
commit0930c1a1c8ac9398e71fd8e9ed7efb93dc41125f (patch)
treee7fd15b3bb31c40abde660a24bb108c4a2af09df /src
parent2a1c1d7150e64c0c05a1d1e17b288091cbd98011 (diff)
downloademacs-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/ChangeLog37
-rw-r--r--src/alloc.c70
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 @@
12003-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
12003-09-08 Lute Kamstra <Lute.Kamstra@cwi.nl> 92003-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
132003-09-07 Eli Zaretskii <eliz@elta.co.il> 212003-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
182003-09-03 Kim F. Storm <storm@cua.dk> 252003-09-03 Kim F. Storm <storm@cua.dk>
19 26
@@ -54,9 +61,9 @@
54 61
552003-08-29 Gerd Moellmann <gerd.moellmann@t-online.de> 622003-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
612003-08-29 Richard M. Stallman <rms@gnu.org> 682003-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
832003-08-28 David Abrahams <dave@boost-consulting.com> (tiny change) 902003-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
882003-08-27 Jason Rumney <jasonr@gnu.org> 952003-08-27 Jason Rumney <jasonr@gnu.org>
@@ -100,13 +107,11 @@
100 107
1012003-08-24 Eli Zaretskii <eliz@elta.co.il> 1082003-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
1112003-08-21 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1162003-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
1812003-08-16 Richard M. Stallman <rms@gnu.org> 1852003-08-16 Richard M. Stallman <rms@gnu.org>
182 186
@@ -190,7 +194,7 @@
1902003-08-16 Juri Linkov <juri@jurta.org> (tiny change) 1942003-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
1952003-08-15 Kenichi Handa <handa@m17n.org> 1992003-08-15 Kenichi Handa <handa@m17n.org>
196 200
@@ -248,8 +252,7 @@
248 252
2492003-07-28 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) 2532003-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
2542003-07-22 Stefan Monnier <monnier@cs.yale.edu> 2572003-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;
1131static void 1131static void
1132init_intervals () 1132init_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;
2768void 2764void
2769init_symbol () 2765init_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;
2854void 2847void
2855init_marker () 2848init_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;