PATCH: more buffer-fiddling for regex.c
Greg McGary
greg@mcgary.org
Tue Jul 18 11:24:00 GMT 2000
For i686: No build regressions. No binary differences for non-BP.
OK?
2000-07-18 Greg McGary <greg@mcgary.org>
* posix/regex.c (EXTEND_BUFFER_HIGH_BOUND): New macro.
(EXTEND_BUFFER): Use it.
Index: posix/regex.c
===================================================================
RCS file: /cvs/glibc/libc/posix/regex.c,v
retrieving revision 1.75
diff -u -p -r1.75 regex.c
--- regex.c 2000/07/07 07:53:40 1.75
+++ regex.c 2000/07/18 18:20:02
@@ -1750,8 +1750,21 @@ static reg_errcode_t compile_range _RE_A
#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_A
if (pending_exact) \
MOVE_BUFFER_POINTER (pending_exact); \
} \
+ EXTEND_BUFFER_HIGH_BOUND; \
} while (0)
More information about the Libc-hacker
mailing list