Author: stas Date: Fri Jul 8 12:07:46 2005 New Revision: 209859 URL: http://svn.apache.org/viewcvs?rev=209859&view=rev Log: perl blead fix: in 5.9.3 HvPMROOT was completely removed, temporary using Perl_Imodglobal_ptr(thx)))->xmg_magic (which fails on perl_clone from ithreads, but otherwise works). this must be replaced with a better solution once we find it.
Modified: perl/modperl/trunk/src/modules/perl/modperl_interp.h Modified: perl/modperl/trunk/src/modules/perl/modperl_interp.h URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_interp.h?rev=209859&r1=209858&r2=209859&view=diff ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_interp.h (original) +++ perl/modperl/trunk/src/modules/perl/modperl_interp.h Fri Jul 8 12:07:46 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);