diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | posix/regex.c | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 4683bc220c..7b52ea136b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-07-18 Greg McGary <greg@mcgary.org> + + * posix/regex.c (EXTEND_BUFFER_HIGH_BOUND): New macro. + (EXTEND_BUFFER): Use it. + 2000-07-18 Ulrich Drepper <drepper@redhat.com> * include/libc-symbols.h: Define RETURN_ADDRESS macro. diff --git a/posix/regex.c b/posix/regex.c index c9476be532..2c967297a5 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -1750,8 +1750,21 @@ static reg_errcode_t compile_range _RE_ARGS ((unsigned int range_start, #if __BOUNDED_POINTERS__ # define MOVE_BUFFER_POINTER(P) \ (__ptrlow (P) += incr, __ptrhigh (P) += incr, __ptrvalue (P) += incr) +# define EXTEND_BUFFER_HIGH_BOUND \ + do { \ + int incr = bufp->allocated >> 1; \ + __ptrhigh b += incr; \ + __ptrhigh begalt += incr; \ + if (fixup_alt_jump) \ + __ptrhigh fixup_alt_jump += incr; \ + if (laststart) \ + __ptrhigh laststart += incr; \ + if (pending_exact) \ + __ptrhigh pending_exact += incr; \ + } while (0) #else # define MOVE_BUFFER_POINTER(P) (P) += incr +# define EXTEND_BUFFER_HIGH_BOUND #endif #define EXTEND_BUFFER() \ do { \ @@ -1777,6 +1790,7 @@ static reg_errcode_t compile_range _RE_ARGS ((unsigned int range_start, if (pending_exact) \ MOVE_BUFFER_POINTER (pending_exact); \ } \ + EXTEND_BUFFER_HIGH_BOUND; \ } while (0) |