diff options
author | Greg McGary <greg@mcgary.org> | 2000-08-04 20:07:17 +0000 |
---|---|---|
committer | Greg McGary <greg@mcgary.org> | 2000-08-04 20:07:17 +0000 |
commit | 13550428ee7b8261f2444bb59e029dd88ed7e334 (patch) | |
tree | 3143fff2c8801a5412d940af6aad76781813a3c9 /posix/regex.c | |
parent | cd8b7ff9136eb26efc527df2df876c112d91df17 (diff) | |
download | glibc-13550428ee7b8261f2444bb59e029dd88ed7e334.zip glibc-13550428ee7b8261f2444bb59e029dd88ed7e334.tar.gz glibc-13550428ee7b8261f2444bb59e029dd88ed7e334.tar.bz2 |
* posix/regex.c (SET_HIGH_BOUND): New macro.
(MOVE_BUFFER_POINTER): Use it.
(ELSE_EXTEND_BUFFER_HIGH_BOUND): New macro.
(EXTEND_BUFFER): Use it.
2000-08-04 Greg McGary <greg@mcgary.org>
* posix/regex.c (SET_HIGH_BOUND): New macro.
(MOVE_BUFFER_POINTER): Use it.
(ELSE_EXTEND_BUFFER_HIGH_BOUND): New macro.
(EXTEND_BUFFER): Use it.
Diffstat (limited to 'posix/regex.c')
-rw-r--r-- | posix/regex.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/posix/regex.c b/posix/regex.c index 8bd6ac7..f1d066b 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -1748,11 +1748,24 @@ static reg_errcode_t compile_range _RE_ARGS ((unsigned int range_start, correct places in the new one. If extending the buffer results in it being larger than MAX_BUF_SIZE, then flag memory exhausted. */ #if __BOUNDED_POINTERS__ +# define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated) # define MOVE_BUFFER_POINTER(P) \ - (__ptrhigh (P) = (__ptrlow (P) += incr) + bufp->allocated, \ - __ptrvalue (P) += incr) + (__ptrlow (P) += incr, SET_HIGH_BOUND (P), __ptrvalue (P) += incr) +# define ELSE_EXTEND_BUFFER_HIGH_BOUND \ + else \ + { \ + SET_HIGH_BOUND (b); \ + SET_HIGH_BOUND (begalt); \ + if (fixup_alt_jump) \ + SET_HIGH_BOUND (fixup_alt_jump); \ + if (laststart) \ + SET_HIGH_BOUND (laststart); \ + if (pending_exact) \ + SET_HIGH_BOUND (pending_exact); \ + } #else # define MOVE_BUFFER_POINTER(P) (P) += incr +# define ELSE_EXTEND_BUFFER_HIGH_BOUND #endif #define EXTEND_BUFFER() \ do { \ @@ -1778,6 +1791,7 @@ static reg_errcode_t compile_range _RE_ARGS ((unsigned int range_start, if (pending_exact) \ MOVE_BUFFER_POINTER (pending_exact); \ } \ + ELSE_EXTEND_BUFFER_HIGH_BOUND \ } while (0) |