Author: stas
Date: Fri Jul 8 12:19:31 2005
New Revision: 209866
URL: http://svn.apache.org/viewcvs?rev=209866&view=rev
Log:
merging from trunk from r209127 to r209863
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/mod_perl.c
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_cmd.c
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_common_util.c
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_interp.h
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io.c
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_mgv.c
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_util.c
perl/modperl/branches/clone-skip-unstable/xs/APR/Socket/APR__Socket.h
perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Util/ModPerl__Util.h
Modified: perl/modperl/branches/clone-skip-unstable/src/modules/perl/mod_perl.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/mod_perl.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/mod_perl.c
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/mod_perl.c Fri
Jul 8 12:19:31 2005
@@ -532,6 +532,9 @@
modperl_global_init_server_rec(pconf, s);
modperl_tls_create_request_rec(pconf);
+
+ /* init the counter to 0 */
+ modperl_global_anon_cnt_init(pconf);
}
/*
@@ -692,9 +695,17 @@
}
#endif
+#if PERL_REVISION == 5 && PERL_VERSION < 9
+#define MP_PERL_VERSION_STAMP "Perl/v%vd"
+#else
+#define MP_PERL_VERSION_STAMP "Perl/%" SVf
+#endif
+
ap_add_version_component(pconf, MP_VERSION_STRING);
ap_add_version_component(pconf,
- Perl_form(aTHX_ "Perl/v%vd", PL_patchlevel));
+ Perl_form(aTHX_ MP_PERL_VERSION_STAMP,
+ PL_patchlevel));
+
modperl_mgv_hash_handlers(pconf, s);
modperl_modglobal_hash_keys(aTHX);
modperl_env_hash_keys(aTHX);
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_cmd.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_cmd.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_cmd.c
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_cmd.c
Fri Jul 8 12:19:31 2005
@@ -554,6 +554,9 @@
GV *gv = gv_fetchpv("0", TRUE, SVt_PV);
ENTER;SAVETMPS;
save_scalar(gv); /* local $0 */
+#if PERL_REVISION == 5 && PERL_VERSION >= 9
+ TAINT_NOT; /* XXX: temp workaround, see my p5p post */
+#endif
sv_setpv_mg(GvSV(gv), directive->filename);
eval_sv(code, G_SCALAR|G_KEEPERR);
SvREFCNT_dec(code);
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_common_util.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_common_util.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
---
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_common_util.c
(original)
+++
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_common_util.c
Fri Jul 8 12:19:31 2005
@@ -95,7 +95,7 @@
return mg->mg_obj;
}
else {
- Perl_warn(aTHX_ "Not a tied hash: (magic=%c)", mg);
+ Perl_warn(aTHX_ "Not a tied hash: (magic=%c)",
mg->mg_type);
}
}
else {
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_interp.h
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_interp.h?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_interp.h
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_interp.h
Fri Jul 8 12:19:31 2005
@@ -27,12 +27,28 @@
* HvPMROOT will never be used by Perl with PL_modglobal.
* so we have stolen it as a quick way to stash the interp
* pointer.
+ *
+ * However in 5.9.3 HvPMROOT was completely removed, so we have moved
+ * to use another struct member that's hopefully won't be used by
+ * anybody else. But if we can find a better place to store the
+ * pointer to the current mod_perl interpreter object it'd be a much
+ * cleaner solution. of course it must be really fast.
*/
+#ifndef HvPMROOT
+#define MP_THX_INTERP_GET(thx) \
+ (modperl_interp_t *) ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_magic
+#else
#define MP_THX_INTERP_GET(thx) \
(modperl_interp_t *)HvPMROOT(*Perl_Imodglobal_ptr(thx))
+#endif
-#define MP_THX_INTERP_SET(thx, interp) \
+#ifndef HvPMROOT
+#define MP_THX_INTERP_SET(thx, interp) \
+ ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_magic = (MAGIC*)interp
+#else
+#define MP_THX_INTERP_SET(thx, interp) \
HvPMROOT(*Perl_Imodglobal_ptr(thx)) = (PMOP*)interp
+#endif
const char *modperl_interp_scope_desc(modperl_interp_scope_e scope);
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io.c
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io.c Fri
Jul 8 12:19:31 2005
@@ -124,7 +124,7 @@
status = Perl_do_open(aTHX_ handle_save, "<&STDIN", 7, FALSE,
O_RDONLY, 0, Nullfp);
if (status == 0) {
- Perl_croak(aTHX_ "Failed to dup STDIN: %_", get_sv("!", TRUE));
+ Perl_croak(aTHX_ "Failed to dup STDIN: %" SVf, get_sv("!", TRUE));
}
/* similar to PerlIO::scalar, the PerlIO::Apache layer doesn't
@@ -137,7 +137,7 @@
status = Perl_do_open9(aTHX_ handle, "<:Apache2", 9, FALSE, O_RDONLY,
0, Nullfp, sv, 1);
if (status == 0) {
- Perl_croak(aTHX_ "Failed to open STDIN: %_", get_sv("!", TRUE));
+ Perl_croak(aTHX_ "Failed to open STDIN: %" SVf, get_sv("!", TRUE));
}
MP_TRACE_o(MP_FUNC, "end\n");
@@ -167,7 +167,7 @@
status = Perl_do_open(aTHX_ handle_save, ">&STDOUT", 8, FALSE,
O_WRONLY, 0, Nullfp);
if (status == 0) {
- Perl_croak(aTHX_ "Failed to dup STDOUT: %_", get_sv("!", TRUE));
+ Perl_croak(aTHX_ "Failed to dup STDOUT: %" SVf, get_sv("!", TRUE));
}
/* similar to PerlIO::scalar, the PerlIO::Apache layer doesn't
@@ -180,7 +180,7 @@
status = Perl_do_open9(aTHX_ handle, ">:Apache2", 9, FALSE, O_WRONLY,
0, Nullfp, sv, 1);
if (status == 0) {
- Perl_croak(aTHX_ "Failed to open STDOUT: %_", get_sv("!", TRUE));
+ Perl_croak(aTHX_ "Failed to open STDOUT: %" SVf, get_sv("!", TRUE));
}
MP_TRACE_o(MP_FUNC, "end\n");
@@ -221,7 +221,7 @@
GvNAME(handle), GvNAMELEN(handle), G_DISCARD);
if (err != Nullsv) {
- Perl_croak(aTHX_ "Failed to restore STDIN: %_", err);
+ Perl_croak(aTHX_ "Failed to restore STDIN: %" SVf, err);
}
}
@@ -243,7 +243,7 @@
*/
if (GvIOn(handle_orig) && IoOFP(GvIOn(handle_orig)) &&
(PerlIO_flush(IoOFP(GvIOn(handle_orig))) == -1)) {
- Perl_croak(aTHX_ "Failed to flush STDOUT: %_", get_sv("!", TRUE));
+ Perl_croak(aTHX_ "Failed to flush STDOUT: %" SVf, get_sv("!", TRUE));
}
/* close the overriding filehandle */
@@ -268,7 +268,7 @@
GvNAME(handle), GvNAMELEN(handle), G_DISCARD);
if (err != Nullsv) {
- Perl_croak(aTHX_ "Failed to restore STDOUT: %_", err);
+ Perl_croak(aTHX_ "Failed to restore STDOUT: %" SVf, err);
}
}
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_mgv.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_mgv.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_mgv.c
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_mgv.c
Fri Jul 8 12:19:31 2005
@@ -320,8 +320,17 @@
MpHandlerMETHOD_On(handler);
}
+ if (!stash) {
+ return 0;
+ }
+
+
if (MpHandlerMETHOD(handler) && !handler->mgv_obj) {
- modperl_mgv_new_name(handler->mgv_obj, p, HvNAME(stash));
+ char *name = HvNAME(stash);
+ if (!name) {
+ name = "";
+ }
+ modperl_mgv_new_name(handler->mgv_obj, p, name);
}
handler->attrs = (U32)MP_CODE_ATTRS(cv);
Modified:
perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_util.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_util.c?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_util.c
(original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_util.c
Fri Jul 8 12:19:31 2005
@@ -136,7 +136,7 @@
break;
default:
Perl_croak(aTHX_ "panic: unsupported request_rec type %d",
- SvTYPE(rv));
+ (int)SvTYPE(rv));
}
}
@@ -408,7 +408,7 @@
register HE *entry;
xhv = (XPVHV *)SvANY(hv);
- if (!xhv->xhv_array) {
+ if (!HvARRAY(hv)) {
return 0;
}
@@ -422,7 +422,7 @@
PERL_HASH(hash, key, klen);
}
- entry = ((HE**)xhv->xhv_array)[hash & (I32)xhv->xhv_max];
+ entry = ((HE**)HvARRAY(hv))[hash & (I32)xhv->xhv_max];
for (; entry; entry = HeNEXT(entry)) {
if (HeHASH(entry) != hash) {
@@ -633,7 +633,7 @@
if (r->finfo.size != size) {
SvREFCNT_dec(sv);
Perl_croak(aTHX_ "Error: read %d bytes, expected %d ('%s')",
- size, r->finfo.size, r->filename);
+ size, (apr_size_t)r->finfo.size, r->filename);
}
rc = apr_file_close(file);
Modified: perl/modperl/branches/clone-skip-unstable/xs/APR/Socket/APR__Socket.h
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/APR/Socket/APR__Socket.h?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/APR/Socket/APR__Socket.h
(original)
+++ perl/modperl/branches/clone-skip-unstable/xs/APR/Socket/APR__Socket.h Fri
Jul 8 12:19:31 2005
@@ -43,7 +43,7 @@
if (buf_len < SvIV(sv_len)) {
Perl_croak(aTHX_ "the 3rd arg (%d) is bigger than the "
"length (%d) of the 2nd argument",
- SvIV(sv_len), buf_len);
+ (int)SvIV(sv_len), buf_len);
}
buf_len = SvIV(sv_len);
}
Modified:
perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Util/ModPerl__Util.h
URL:
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Util/ModPerl__Util.h?rev=209866&r1=209865&r2=209866&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Util/ModPerl__Util.h
(original)
+++ perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Util/ModPerl__Util.h
Fri Jul 8 12:19:31 2005
@@ -18,7 +18,7 @@
Perl_newSVpvf(aTHX_ "0x%lx", (unsigned long)aTHX)
#else
#define mpxs_ModPerl__Util_current_perl_id() \
- Perl_newSVpvf(aTHX_ "0x%lx", 0)
+ Perl_newSVpvf(aTHX_ "0x%lx", (unsigned long)0)
#endif
static MP_INLINE void mpxs_ModPerl__Util_untaint(pTHX_ I32 items,