[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/search.c,v [EMACS_22_BASE]
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/search.c,v [EMACS_22_BASE] |
Date: |
Fri, 16 Nov 2007 22:16:02 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Branch: EMACS_22_BASE
Changes by: Stefan Monnier <monnier> 07/11/16 22:16:01
Index: search.c
===================================================================
RCS file: /sources/emacs/emacs/src/search.c,v
retrieving revision 1.221.2.2
retrieving revision 1.221.2.3
diff -u -b -r1.221.2.2 -r1.221.2.3
--- search.c 8 Aug 2007 07:49:13 -0000 1.221.2.2
+++ search.c 16 Nov 2007 22:16:01 -0000 1.221.2.3
@@ -2892,11 +2892,15 @@
return reuse;
}
-/* Internal usage only:
+/* We used to have an internal use variant of `reseat' described as:
+
If RESEAT is `evaporate', put the markers back on the free list
- immediately. No other references to the markers must exist in this case,
- so it is used only internally on the unwind stack and save-match-data from
- Lisp. */
+ immediately. No other references to the markers must exist in this
+ case, so it is used only internally on the unwind stack and
+ save-match-data from Lisp.
+
+ But it was ill-conceived: those supposedly-internal markers get exposed via
+ the undo-list, so freeing them here is unsafe. */
DEFUN ("set-match-data", Fset_match_data, Sset_match_data, 1, 2, 0,
doc: /* Set internal data on last search match from elements of LIST.
@@ -2981,9 +2985,6 @@
if (!NILP (reseat) && MARKERP (m))
{
- if (EQ (reseat, Qevaporate))
- free_marker (m);
- else
unchain_marker (XMARKER (m));
XSETCAR (list, Qnil);
}
@@ -3002,9 +3003,6 @@
if (!NILP (reseat) && MARKERP (m))
{
- if (EQ (reseat, Qevaporate))
- free_marker (m);
- else
unchain_marker (XMARKER (m));
XSETCAR (list, Qnil);
}
@@ -3069,8 +3067,8 @@
unwind_set_match_data (list)
Lisp_Object list;
{
- /* It is safe to free (evaporate) the markers immediately. */
- return Fset_match_data (list, Qevaporate);
+ /* It is NOT ALWAYS safe to free (evaporate) the markers immediately. */
+ return Fset_match_data (list, Qt);
}
/* Called to unwind protect the match data. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/src/search.c,v [EMACS_22_BASE],
Stefan Monnier <=