Author: gozer Date: Fri Mar 17 11:25:04 2006 New Revision: 386697 URL: http://svn.apache.org/viewcvs?rev=386697&view=rev Log: Move r->pnotes logic to modperl_util.c, so it can be reused more easily (upcoming c->pnotes)
Modified: perl/modperl/trunk/src/modules/perl/modperl_util.c perl/modperl/trunk/src/modules/perl/modperl_util.h perl/modperl/trunk/xs/Apache2/RequestUtil/Apache2__RequestUtil.h perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm Modified: perl/modperl/trunk/src/modules/perl/modperl_util.c URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_util.c?rev=386697&r1=386696&r2=386697&view=diff ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_util.c (original) +++ perl/modperl/trunk/src/modules/perl/modperl_util.c Fri Mar 17 11:25:04 2006 @@ -828,3 +828,29 @@ modperl_global_get_server_rec()->process->pool); return data ? *(int *)data : 0; } + +SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val, request_rec *r) { + SV *retval = Nullsv; + + if (!*pnotes) { + *pnotes = newHV(); + } + + if (key) { + STRLEN len; + char *k = SvPV(key, len); + + if (val) { + retval = *hv_store(*pnotes, k, len, SvREFCNT_inc(val), 0); + } + else if (hv_exists(*pnotes, k, len)) { + retval = *hv_fetch(*pnotes, k, len, FALSE); + } + } + else { + retval = newRV_inc((SV *)*pnotes); + } + + return retval ? SvREFCNT_inc(retval) : &PL_sv_undef; +} + Modified: perl/modperl/trunk/src/modules/perl/modperl_util.h URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_util.h?rev=386697&r1=386696&r2=386697&view=diff ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_util.h (original) +++ perl/modperl/trunk/src/modules/perl/modperl_util.h Fri Mar 17 11:25:04 2006 @@ -145,4 +145,6 @@ void modperl_restart_count_inc(server_rec *base_server); int modperl_restart_count(void); +SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val, request_rec *r); + #endif /* MODPERL_UTIL_H */ Modified: perl/modperl/trunk/xs/Apache2/RequestUtil/Apache2__RequestUtil.h URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/Apache2/RequestUtil/Apache2__RequestUtil.h?rev=386697&r1=386696&r2=386697&view=diff ============================================================================== --- perl/modperl/trunk/xs/Apache2/RequestUtil/Apache2__RequestUtil.h (original) +++ perl/modperl/trunk/xs/Apache2/RequestUtil/Apache2__RequestUtil.h Fri Mar 17 11:25:04 2006 @@ -212,32 +212,12 @@ SV *mpxs_Apache2__RequestRec_pnotes(pTHX_ request_rec *r, SV *key, SV *val) { MP_dRCFG; - SV *retval = NULL; if (!rcfg) { return &PL_sv_undef; } - if (!rcfg->pnotes) { - rcfg->pnotes = newHV(); - } - - if (key) { - STRLEN len; - char *k = SvPV(key, len); - - if (val) { - retval = *hv_store(rcfg->pnotes, k, len, - SvREFCNT_inc(val), 0); - } - else if (hv_exists(rcfg->pnotes, k, len)) { - retval = *hv_fetch(rcfg->pnotes, k, len, FALSE); - } - } - else { - retval = newRV_inc((SV *)rcfg->pnotes); - } - return retval ? SvREFCNT_inc(retval) : &PL_sv_undef; + return modperl_pnotes(aTHX_ &rcfg->pnotes, key, val, r); } #define mpxs_Apache2__RequestRec_dir_config(r, key, sv_val) \ Modified: perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm?rev=386697&r1=386696&r2=386697&view=diff ============================================================================== --- perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm (original) +++ perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm Fri Mar 17 11:25:04 2006 @@ -4413,6 +4413,32 @@ ] }, { + 'return_type' => 'SV *', + 'name' => 'modperl_pnotes', + 'args' => [ + { + 'type' => 'PerlInterpreter *', + 'name' => 'my_perl' + }, + { + 'type' => 'HV **', + 'name' => 'pnotes' + }, + { + 'type' => 'SV *', + 'name' => 'key' + }, + { + 'type' => 'SV *', + 'name' => 'val' + }, + { + 'type' => 'request_rec *', + 'name' => 'r' + } + ] + }. + { 'return_type' => 'int', 'name' => 'modperl_post_config_handler', 'args' => [