From 51ee8bc4483d3608f4355777aeabbb31887326d9 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 30 Mar 2018 14:23:55 -0700 Subject: Centralize Bug#30931 fix * src/marker.c (detach_marker): New function. * src/editfns.c (save_restriction_restore): * src/insdel.c (signal_before_change): Use it. (cherry picked from commit 6f66a43d7ad6cada2b7dbb6d07efe36be1dc7ecb) --- src/editfns.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/editfns.c') diff --git a/src/editfns.c b/src/editfns.c index 1fcfc7aef63..b553a213e6c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -3876,12 +3876,9 @@ save_restriction_restore (Lisp_Object data) buf->clip_changed = 1; /* Remember that the narrowing changed. */ } - /* This isn’t needed anymore, so don’t wait for GC. Do not call - free_marker on XCAR (data) or XCDR (data), though, since - record_marker_adjustments may have put them on the buffer’s - undo list (Bug#30931). Just detach them instead. */ - Fset_marker (XCAR (data), Qnil, Qnil); - Fset_marker (XCDR (data), Qnil, Qnil); + /* Detach the markers, and free the cons instead of waiting for GC. */ + detach_marker (XCAR (data)); + detach_marker (XCDR (data)); free_cons (XCONS (data)); } else -- cgit v1.2.1