diff options
| author | Eli Zaretskii <eliz@gnu.org> | 2012-05-29 19:01:05 +0300 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2012-05-29 19:01:05 +0300 |
| commit | a02ae4e5bfa13097dabee45f45ee992cdb830bb3 (patch) | |
| tree | 087dd2026ed1f059c967bbde9471d1257b982dcf | |
| parent | 291d430f5f184c8a9438eace09b141131de343e8 (diff) | |
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.
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/search.c | 20 |
2 files changed, 7 insertions, 20 deletions
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 <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 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 (); |
