diff --git a/src/ChangeLog b/src/ChangeLog index ec5725af2bc..16bd1659b34 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-05-29 Eli Zaretskii + + * 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 * charset.c (maybe_unify_char): Inhibit relocation of buffer text diff --git a/src/search.c b/src/search.c index 67f9e505fad..26fc7396555 100644 --- a/src/search.c +++ b/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 ();