This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Change and comment a problematic #define
authorKarl Williamson <public@khwilliamson.com>
Wed, 27 Jun 2012 22:57:25 +0000 (16:57 -0600)
committerKarl Williamson <public@khwilliamson.com>
Wed, 25 Jul 2012 03:13:43 +0000 (21:13 -0600)
As noted in the new comments, there is no out-of-bounds code point, so
this should not be used as such; and it turns out, it really isn't.
But this is a fall-back in case code is changed to not set the variable
that this initializes, and the comment will prevent someone else from
wasting their time trying to figure out why this is like this.

regcomp.c

index e3e85c6..e2218bd 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -403,9 +403,13 @@ static const scan_data_t zero_scan_data =
 
 #define FOLD cBOOL(RExC_flags & RXf_PMf_FOLD)
 
-#define OOB_UNICODE            12345678
 #define OOB_NAMEDCLASS         -1
 
+/* There is no code point that is out-of-bounds, so this is problematic.  But
+ * its only current use is to initialize a variable that is always set before
+ * looked at. */
+#define OOB_UNICODE            0xDEADBEEF
+
 #define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
 #define CHR_DIST(a,b) (UTF ? utf8_distance(a,b) : a - b)