dougm 01/09/12 20:18:27
Modified: src/modules/perl mod_perl.c
Log:
fix new modperl_xs_init to work with 5.6.x
Revision Changes Path
1.67 +13 -2 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- mod_perl.c 2001/09/13 02:37:37 1.66
+++ mod_perl.c 2001/09/13 03:18:27 1.67
@@ -30,15 +30,26 @@
#define MP_xs_loader_name "%s::XSLoader::BOOTSTRAP"
-static void modperl_xs_init(pTHX)
+static void modperl_boot(void *data)
{
+ dTHX; /* XXX: not too worried since this only happens at startup */
int i;
- xs_init(aTHX); /* see modperl_xsinit.c */
for (i=0; MP_xs_loaders[i]; i++) {
char *name = Perl_form(aTHX_ MP_xs_loader_name, MP_xs_loaders[i]);
newCONSTSUB(PL_defstash, name, newSViv(1));
}
+}
+
+static void modperl_xs_init(pTHX)
+{
+ xs_init(aTHX); /* see modperl_xsinit.c */
+
+ /* XXX: in 5.7.2+ we can call the body of modperl_boot here
+ * but in 5.6.1 the Perl runtime is not properly setup yet
+ * so we have to pull this stunt to delay
+ */
+ SAVEDESTRUCTOR_X(modperl_boot, 0);
}
PerlInterpreter *modperl_startup(server_rec *s, apr_pool_t *p)