mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-05 11:45:45 +00:00
Don't call r_alloc_inhibit_buffer_relocation from search.c.
src/search.c (search_buffer): Remove calls to r_alloc_inhibit_buffer_relocation, as it is now called by maybe_unify_char, which was the cause of relocation of buffer text in bug#11519.
This commit is contained in:
parent
291d430f5f
commit
a02ae4e5bf
@ -1,3 +1,10 @@
|
||||
2012-05-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* search.c (search_buffer): Remove calls to
|
||||
r_alloc_inhibit_buffer_relocation, as it is now called by
|
||||
maybe_unify_char, which was the cause of relocation of buffer text
|
||||
in bug#11519.
|
||||
|
||||
2012-05-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* charset.c (maybe_unify_char): Inhibit relocation of buffer text
|
||||
|
20
src/search.c
20
src/search.c
@ -1159,24 +1159,12 @@ search_buffer (Lisp_Object string, EMACS_INT pos, EMACS_INT pos_byte,
|
||||
{
|
||||
EMACS_INT val;
|
||||
|
||||
#ifdef REL_ALLOC
|
||||
/* re_search_2 below is passed C pointers to buffer text.
|
||||
If some code called by it causes memory (re)allocation,
|
||||
buffer text could be relocated on platforms that use
|
||||
REL_ALLOC, which invalidates those C pointers. So we
|
||||
inhibit relocation of buffer text for as long as
|
||||
re_search_2 runs. */
|
||||
r_alloc_inhibit_buffer_relocation (1);
|
||||
#endif
|
||||
val = re_search_2 (bufp, (char *) p1, s1, (char *) p2, s2,
|
||||
pos_byte - BEGV_BYTE, lim_byte - pos_byte,
|
||||
(NILP (Vinhibit_changing_match_data)
|
||||
? &search_regs : &search_regs_1),
|
||||
/* Don't allow match past current point */
|
||||
pos_byte - BEGV_BYTE);
|
||||
#ifdef REL_ALLOC
|
||||
r_alloc_inhibit_buffer_relocation (0);
|
||||
#endif
|
||||
if (val == -2)
|
||||
{
|
||||
matcher_overflow ();
|
||||
@ -1216,19 +1204,11 @@ search_buffer (Lisp_Object string, EMACS_INT pos, EMACS_INT pos_byte,
|
||||
{
|
||||
EMACS_INT val;
|
||||
|
||||
#ifdef REL_ALLOC
|
||||
/* See commentary above for the reasons for inhibiting
|
||||
buffer text relocation here. */
|
||||
r_alloc_inhibit_buffer_relocation (1);
|
||||
#endif
|
||||
val = re_search_2 (bufp, (char *) p1, s1, (char *) p2, s2,
|
||||
pos_byte - BEGV_BYTE, lim_byte - pos_byte,
|
||||
(NILP (Vinhibit_changing_match_data)
|
||||
? &search_regs : &search_regs_1),
|
||||
lim_byte - BEGV_BYTE);
|
||||
#ifdef REL_ALLOC
|
||||
r_alloc_inhibit_buffer_relocation (0);
|
||||
#endif
|
||||
if (val == -2)
|
||||
{
|
||||
matcher_overflow ();
|
||||
|
Loading…
Reference in New Issue
Block a user