summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-09-06 09:21:24 -0500
committerJesse Luehrs <doy@tozt.net>2011-09-06 09:24:54 -0500
commite1b6c960b5ab304f320ee63b1e2572a7883e17ef (patch)
tree9a88526bbeb7c2583985e86aa4657a9042222b44
parent616b154b64d77e7c12b2afce00995d7417c6ffd7 (diff)
downloadpackage-stash-xs-e1b6c960b5ab304f320ee63b1e2572a7883e17ef.tar.gz
package-stash-xs-e1b6c960b5ab304f320ee63b1e2572a7883e17ef.zip
fix compilation on perl 5.8 (RT#70762)0.25
-rw-r--r--Changes1
-rw-r--r--XS.xs10
2 files changed, 10 insertions, 1 deletions
diff --git a/Changes b/Changes
index 6d86cbf..aa1fd34 100644
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
Revision history for Package-Stash-XS
{{$NEXT}}
+ - fix compilation on perl 5.8 (RT#70762)
0.24 2011-09-05
- invalid package names (for instance, Foo:Bar) are not allowed
diff --git a/XS.xs b/XS.xs
index 7015e3e..2a0fd9a 100644
--- a/XS.xs
+++ b/XS.xs
@@ -804,10 +804,18 @@ get_all_symbols(self, vartype=VAR_NONE)
BOOT:
{
+ const char *vmre = "\\A[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*\\z";
+#if (PERL_VERSION < 9) || ((PERL_VERSION == 9) && (PERL_SUBVERSION < 5))
+ PMOP fakepmop;
+
+ fakepmop.op_pmflags = 0;
+ valid_module_regex = pregcomp(vmre, vmre + strlen(vmre), &fakepmop);
+#else
SV *re;
- re = newSVpv("\\A[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*\\z", 0);
+ re = newSVpv(vmre, 0);
valid_module_regex = pregcomp(re, 0);
+#endif
name_key = newSVpvs("name");
PERL_HASH(name_hash, "name", 4);