aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/alloc.c b/src/alloc.c
index ed003af3ea8..295da59d026 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1153,6 +1153,8 @@ allocate_buffer ()
1153 struct buffer *b 1153 struct buffer *b
1154 = (struct buffer *) lisp_malloc (sizeof (struct buffer), 1154 = (struct buffer *) lisp_malloc (sizeof (struct buffer),
1155 MEM_TYPE_BUFFER); 1155 MEM_TYPE_BUFFER);
1156 b->size = sizeof (struct buffer) / sizeof (EMACS_INT);
1157 XSETPVECTYPE (b, PVEC_BUFFER);
1156 return b; 1158 return b;
1157} 1159}
1158 1160
@@ -3307,7 +3309,7 @@ allocate_misc ()
3307 --total_free_markers; 3309 --total_free_markers;
3308 consing_since_gc += sizeof (union Lisp_Misc); 3310 consing_since_gc += sizeof (union Lisp_Misc);
3309 misc_objects_consed++; 3311 misc_objects_consed++;
3310 XMARKER (val)->gcmarkbit = 0; 3312 XMISCANY (val)->gcmarkbit = 0;
3311 return val; 3313 return val;
3312} 3314}
3313 3315
@@ -3317,7 +3319,7 @@ void
3317free_misc (misc) 3319free_misc (misc)
3318 Lisp_Object misc; 3320 Lisp_Object misc;
3319{ 3321{
3320 XMISC (misc)->u_marker.type = Lisp_Misc_Free; 3322 XMISCTYPE (misc) = Lisp_Misc_Free;
3321 XMISC (misc)->u_free.chain = marker_free_list; 3323 XMISC (misc)->u_free.chain = marker_free_list;
3322 marker_free_list = XMISC (misc); 3324 marker_free_list = XMISC (misc);
3323 3325
@@ -4033,7 +4035,7 @@ live_misc_p (m, p)
4033 && offset < (MARKER_BLOCK_SIZE * sizeof b->markers[0]) 4035 && offset < (MARKER_BLOCK_SIZE * sizeof b->markers[0])
4034 && (b != marker_block 4036 && (b != marker_block
4035 || offset / sizeof b->markers[0] < marker_block_index) 4037 || offset / sizeof b->markers[0] < marker_block_index)
4036 && ((union Lisp_Misc *) p)->u_marker.type != Lisp_Misc_Free); 4038 && ((union Lisp_Misc *) p)->u_any.type != Lisp_Misc_Free);
4037 } 4039 }
4038 else 4040 else
4039 return 0; 4041 return 0;
@@ -4164,7 +4166,7 @@ mark_maybe_object (obj)
4164 break; 4166 break;
4165 4167
4166 case Lisp_Misc: 4168 case Lisp_Misc:
4167 mark_p = (live_misc_p (m, po) && !XMARKER (obj)->gcmarkbit); 4169 mark_p = (live_misc_p (m, po) && !XMISCANY (obj)->gcmarkbit);
4168 break; 4170 break;
4169 4171
4170 case Lisp_Int: 4172 case Lisp_Int:
@@ -5613,14 +5615,13 @@ mark_object (arg)
5613 5615
5614 case Lisp_Misc: 5616 case Lisp_Misc:
5615 CHECK_ALLOCATED_AND_LIVE (live_misc_p); 5617 CHECK_ALLOCATED_AND_LIVE (live_misc_p);
5616 if (XMARKER (obj)->gcmarkbit) 5618 if (XMISCANY (obj)->gcmarkbit)
5617 break; 5619 break;
5618 XMARKER (obj)->gcmarkbit = 1; 5620 XMISCANY (obj)->gcmarkbit = 1;
5619 5621
5620 switch (XMISCTYPE (obj)) 5622 switch (XMISCTYPE (obj))
5621 { 5623 {
5622 case Lisp_Misc_Buffer_Local_Value: 5624 case Lisp_Misc_Buffer_Local_Value:
5623 case Lisp_Misc_Some_Buffer_Local_Value:
5624 { 5625 {
5625 register struct Lisp_Buffer_Local_Value *ptr 5626 register struct Lisp_Buffer_Local_Value *ptr
5626 = XBUFFER_LOCAL_VALUE (obj); 5627 = XBUFFER_LOCAL_VALUE (obj);
@@ -5806,7 +5807,7 @@ survives_gc_p (obj)
5806 break; 5807 break;
5807 5808
5808 case Lisp_Misc: 5809 case Lisp_Misc:
5809 survives_p = XMARKER (obj)->gcmarkbit; 5810 survives_p = XMISCANY (obj)->gcmarkbit;
5810 break; 5811 break;
5811 5812
5812 case Lisp_String: 5813 case Lisp_String:
@@ -6103,9 +6104,9 @@ gc_sweep ()
6103 6104
6104 for (i = 0; i < lim; i++) 6105 for (i = 0; i < lim; i++)
6105 { 6106 {
6106 if (!mblk->markers[i].u_marker.gcmarkbit) 6107 if (!mblk->markers[i].u_any.gcmarkbit)
6107 { 6108 {
6108 if (mblk->markers[i].u_marker.type == Lisp_Misc_Marker) 6109 if (mblk->markers[i].u_any.type == Lisp_Misc_Marker)
6109 unchain_marker (&mblk->markers[i].u_marker); 6110 unchain_marker (&mblk->markers[i].u_marker);
6110 /* Set the type of the freed object to Lisp_Misc_Free. 6111 /* Set the type of the freed object to Lisp_Misc_Free.
6111 We could leave the type alone, since nobody checks it, 6112 We could leave the type alone, since nobody checks it,
@@ -6118,7 +6119,7 @@ gc_sweep ()
6118 else 6119 else
6119 { 6120 {
6120 num_used++; 6121 num_used++;
6121 mblk->markers[i].u_marker.gcmarkbit = 0; 6122 mblk->markers[i].u_any.gcmarkbit = 0;
6122 } 6123 }
6123 } 6124 }
6124 lim = MARKER_BLOCK_SIZE; 6125 lim = MARKER_BLOCK_SIZE;
@@ -6256,7 +6257,7 @@ die (msg, file, line)
6256 const char *file; 6257 const char *file;
6257 int line; 6258 int line;
6258{ 6259{
6259 fprintf (stderr, "\r\nEmacs fatal error: %s:%d: %s\r\n", 6260 fprintf (stderr, "\r\n%s:%d: Emacs fatal error: %s\r\n",
6260 file, line, msg); 6261 file, line, msg);
6261 abort (); 6262 abort ();
6262} 6263}