Author: torsten Date: Wed Feb 8 19:46:39 2012 New Revision: 1242050 URL: http://svn.apache.org/viewvc?rev=1242050&view=rev Log: remove a bit of code complexity
modperl_module.c contains these 2 lines: interp = modperl_interp_pool_select(p, s); MP_PERL_CONTEXT_STORE_OVERRIDE(interp->perl); The latter decodes as orig_perl = PERL_GET_CONTEXT; aTHX = interp->perl; PERL_SET_CONTEXT(aTHX); Now, modperl_interp_pool_select() already calls PERL_SET_CONTEXT with the newly allocated interpreter. So, we get PERL_SET_CONTEXT(interp->perl); orig_perl = PERL_GET_CONTEXT; aTHX = interp->perl; PERL_SET_CONTEXT(aTHX); But this is the same as interp = modperl_interp_pool_select(p, s); aTHX = interp->perl; Modified: perl/modperl/branches/threading/src/modules/perl/modperl_module.c Modified: perl/modperl/branches/threading/src/modules/perl/modperl_module.c URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_module.c?rev=1242050&r1=1242049&r2=1242050&view=diff ============================================================================== --- perl/modperl/branches/threading/src/modules/perl/modperl_module.c (original) +++ perl/modperl/branches/threading/src/modules/perl/modperl_module.c Wed Feb 8 19:46:39 2012 @@ -168,7 +168,7 @@ static void *modperl_module_config_merge SV *mrg_obj = Nullsv, *base_obj, *add_obj; #ifdef USE_ITHREADS modperl_interp_t *interp; - MP_PERL_CONTEXT_DECLARE; + pTHX; #endif /* if the module is loaded in vhost, base==NULL */ @@ -184,7 +184,7 @@ static void *modperl_module_config_merge #ifdef USE_ITHREADS interp = modperl_interp_pool_select(p, s); - MP_PERL_CONTEXT_STORE_OVERRIDE(interp->perl); + aTHX = interp->perl; #endif table = modperl_module_config_table_get(aTHX_ TRUE); @@ -196,7 +196,6 @@ static void *modperl_module_config_merge MP_TRACE_i(MP_FUNC, "unselecting: (0x%lx)->refcnt=%ld", interp, interp->refcnt); modperl_interp_unselect(interp); - MP_PERL_CONTEXT_RESTORE; #endif return addv; } @@ -250,7 +249,6 @@ static void *modperl_module_config_merge MP_TRACE_i(MP_FUNC, "unselecting: (0x%lx)->refcnt=%ld", interp, interp->refcnt); modperl_interp_unselect(interp); - MP_PERL_CONTEXT_RESTORE; #endif return (void *)mrg;