if (best_above - best_below < 50)
break;
- tail = XMARKER (tail)->chain;
+ tail = MARKER_CHAIN (XMARKER (tail));
}
/* We get here if we did not exactly hit one of the known places.
if (best_above - best_below < 50)
break;
- tail = XMARKER (tail)->chain;
+ tail = MARKER_CHAIN (XMARKER (tail));
}
/* We get here if we did not exactly hit one of the known places.
{
unchain_marker (marker);
m->buffer = b;
- m->chain = BUF_MARKERS (b);
- BUF_MARKERS (b) = marker;
+ XSET_MARKER_CHAIN (m, BUF_MARKERS (b));
+ SET_BUF_MARKERS (b, marker);
}
return marker;
{
unchain_marker (marker);
m->buffer = b;
- m->chain = BUF_MARKERS (b);
- BUF_MARKERS (b) = marker;
+ XSET_MARKER_CHAIN (m, BUF_MARKERS (b));
+ SET_BUF_MARKERS (b, marker);
}
return marker;
{
unchain_marker (marker);
m->buffer = b;
- m->chain = BUF_MARKERS (b);
- BUF_MARKERS (b) = marker;
+ XSET_MARKER_CHAIN (m, BUF_MARKERS (b));
+ SET_BUF_MARKERS (b, marker);
}
return marker;
{
unchain_marker (marker);
m->buffer = b;
- m->chain = BUF_MARKERS (b);
- BUF_MARKERS (b) = marker;
+ XSET_MARKER_CHAIN (m, BUF_MARKERS (b));
+ SET_BUF_MARKERS (b, marker);
}
return marker;
register Lisp_Object marker;
{
register Lisp_Object tail, prev, next;
+#ifndef BOEHM_GC
register EMACS_INT omark;
+#endif
register struct buffer *b;
b = XMARKER (marker)->buffer;
prev = Qnil;
while (! GC_NILP (tail))
{
- next = XMARKER (tail)->chain;
+ next = MARKER_CHAIN (XMARKER (tail));
+#ifndef BOEHM_GC
XUNMARK (next);
+#endif
if (XMARKER (marker) == XMARKER (tail))
{
if (NILP (prev))
{
- BUF_MARKERS (b) = next;
+ SET_BUF_MARKERS (b, next);
/* Deleting first marker from the buffer's chain. Crash
if new first marker in chain does not say it belongs
to the same buffer, or at least that they have the same
}
else
{
- omark = XMARKBIT (XMARKER (prev)->chain);
- XMARKER (prev)->chain = next;
- XSETMARKBIT (XMARKER (prev)->chain, omark);
+#ifdef BOEHM_GC
+ XSET_MARKER_CHAIN (XMARKER (prev), next);
+#else
+ omark = XMARKBIT (MARKER_CHAIN (XMARKER (prev)));
+ XSET_MARKER_CHAIN (XMARKER (prev), next);
+ XSETMARKBIT (MARKER_CHAIN (XMARKER (prev)), omark);
+#endif
}
/* We have removed the marker from the chain;
no need to scan the rest of the chain. */
for (tail = BUF_MARKERS (current_buffer);
!NILP (tail);
- tail = XMARKER (tail)->chain)
+ tail = MARKER_CHAIN (XMARKER (tail)))
if (XMARKER (tail)->charpos == charno)
return Qt;
for (tail = BUF_MARKERS (buf);
!NILP (tail);
- tail = XMARKER (tail)->chain)
+ tail = MARKER_CHAIN (XMARKER (tail)))
total++;
return total;