From: Eli Zaretskii Date: Tue, 29 May 2012 16:01:05 +0000 (+0300) Subject: Don't call r_alloc_inhibit_buffer_relocation from search.c. X-Git-Tag: emacs-24.1~11 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a02ae4e5bfa13097dabee45f45ee992cdb830bb3;p=emacs.git 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. --- 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 ();