Commit 0221b7a9 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Mark relocation workarounds with REL_ALLOC

* src/search.c (boyer_moore): Mark workarounds for ralloc.c
relocation of buffer text with "#ifdef REL_ALLOC".
parent 5043e0a7
......@@ -2029,20 +2029,27 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat,
cursor += dirlen - i - direction; /* fix cursor */
if (i + direction == 0)
{
ptrdiff_t position, start, end, cursor_off;
ptrdiff_t position, start, end;
#ifdef REL_ALLOC
ptrdiff_t cursor_off;
#endif
cursor -= direction;
position = pos_byte + cursor - p2 + ((direction > 0)
? 1 - len_byte : 0);
#ifdef REL_ALLOC
/* set_search_regs might call malloc, which could
cause ralloc.c relocate buffer text. We need to
update pointers into buffer text due to that. */
cursor_off = cursor - p2;
#endif
set_search_regs (position, len_byte);
#ifdef REL_ALLOC
p_limit = BYTE_POS_ADDR (limit);
p2 = BYTE_POS_ADDR (pos_byte);
cursor = p2 + cursor_off;
#endif
if (NILP (Vinhibit_changing_match_data))
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment