aboutsummaryrefslogtreecommitdiffstats
path: root/src/marker-vector.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/marker-vector.c')
-rw-r--r--src/marker-vector.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/marker-vector.c b/src/marker-vector.c
index a53e5f4b666..904b44be50d 100644
--- a/src/marker-vector.c
+++ b/src/marker-vector.c
@@ -164,9 +164,8 @@ check_marker_vector (struct Lisp_Vector *v, bool allocating)
164 164
165 size_t nused = 0; 165 size_t nused = 0;
166 Lisp_Object mv = make_lisp_ptr (v, Lisp_Vectorlike); 166 Lisp_Object mv = make_lisp_ptr (v, Lisp_Vectorlike);
167 DO_MARKERS_OF_VECTOR (mv, m) 167 FOR_EACH_MARKER_OF_VECTOR (mv, m)
168 { 168 {
169 eassert (m->entry == e_);
170 eassert (m->buffer != NULL); 169 eassert (m->buffer != NULL);
171 if (!allocating) 170 if (!allocating)
172 { 171 {
@@ -175,7 +174,6 @@ check_marker_vector (struct Lisp_Vector *v, bool allocating)
175 } 174 }
176 ++nused; 175 ++nused;
177 } 176 }
178 END_DO_MARKERS;
179 177
180 eassert ((nused + nfree) * MARKER_VECTOR_ENTRY_SIZE 178 eassert ((nused + nfree) * MARKER_VECTOR_ENTRY_SIZE
181 + MARKER_VECTOR_HEADER_SIZE == gc_vsize (v)); 179 + MARKER_VECTOR_HEADER_SIZE == gc_vsize (v));
@@ -280,13 +278,12 @@ marker_vector_remove (struct Lisp_Vector *v, struct Lisp_Marker *m)
280void 278void
281marker_vector_reset (struct buffer *b) 279marker_vector_reset (struct buffer *b)
282{ 280{
283 DO_MARKERS (b, m) 281 FOR_EACH_MARKER (b, m)
284 { 282 {
285 const struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (m->buffer)); 283 const struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (m->buffer));
286 m->entry = - XFIXNUM (CHARPOS (v, m->entry)); 284 m->entry = - XFIXNUM (CHARPOS (v, m->entry));
287 m->buffer = NULL; 285 m->buffer = NULL;
288 } 286 }
289 END_DO_MARKERS;
290 BUF_MARKERS (b) = Qnil; 287 BUF_MARKERS (b) = Qnil;
291} 288}
292 289
@@ -344,7 +341,7 @@ marker_vector_adjust_for_insert (struct buffer *b,
344{ 341{
345 const ptrdiff_t nchars = to_charpos - from_charpos; 342 const ptrdiff_t nchars = to_charpos - from_charpos;
346 struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b)); 343 struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b));
347 DO_MARKERS (b, m) 344 FOR_EACH_MARKER (b, m)
348 { 345 {
349 const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry)); 346 const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry));
350 if (charpos == from_charpos) 347 if (charpos == from_charpos)
@@ -355,7 +352,6 @@ marker_vector_adjust_for_insert (struct buffer *b,
355 else if (charpos > from_charpos) 352 else if (charpos > from_charpos)
356 CHARPOS (v, m->entry) = make_fixnum (charpos + nchars); 353 CHARPOS (v, m->entry) = make_fixnum (charpos + nchars);
357 } 354 }
358 END_DO_MARKERS;
359} 355}
360 356
361/* Adjust marker positions of buffer Bs for a replacement of text at 357/* Adjust marker positions of buffer Bs for a replacement of text at
@@ -371,7 +367,7 @@ marker_vector_adjust_for_replace (struct buffer *b,
371 const ptrdiff_t diff_nchars = new_nchars - old_nchars; 367 const ptrdiff_t diff_nchars = new_nchars - old_nchars;
372 const ptrdiff_t old_to_charpos = from_charpos + old_nchars; 368 const ptrdiff_t old_to_charpos = from_charpos + old_nchars;
373 struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b)); 369 struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b));
374 DO_MARKERS (b, m) 370 FOR_EACH_MARKER (b, m)
375 { 371 {
376 const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry)); 372 const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry));
377 if (charpos >= old_to_charpos) 373 if (charpos >= old_to_charpos)
@@ -379,5 +375,4 @@ marker_vector_adjust_for_replace (struct buffer *b,
379 else if (charpos > from_charpos) 375 else if (charpos > from_charpos)
380 CHARPOS (v, m->entry) = make_fixnum (from_charpos); 376 CHARPOS (v, m->entry) = make_fixnum (from_charpos);
381 } 377 }
382 END_DO_MARKERS;
383} 378}