Use SSize_t/STRLEN in more places in regexp code
authorFather Chrysostomos <sprout@cpan.org>
Sun, 18 Aug 2013 21:03:06 +0000 (14:03 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 25 Aug 2013 19:24:00 +0000 (12:24 -0700)
commitea3daa5d5f60389b105c00d4f7d05b5c2f2155f2
treedab4742b68bc8dea8c9b4037a7172de242eb5889
parent49f55535e0b402f8cbdf839b5f2c88306c91a31d
Use SSize_t/STRLEN in more places in regexp code

As part of getting the regexp engine to handle long strings, this com-
mit changes any variables, parameters and struct members that hold
lengths of the string being matched against (or parts thereof) to use
SSize_t or STRLEN instead of [IU]32.

To avoid having to change any logic, I kept the signedness the same.

I did not change anything that affects the length of the regular
expression itself, so regexps are still practically limited to
I32_MAX.  Changing that would involve changing the size of regnodes,
which would be a lot more involved.

These changes should fix bugs, but are very hard to test.  In most
cases, I don’t know the regexp engine well enough to come up with test
cases that test the paths in question with long strings.  In other
cases I don’t have a box with enough memory to test the fix.
embed.fnc
pod/perlreapi.pod
proto.h
regcomp.c
regexec.c
regexp.h