Author: torsten
Date: Mon Feb 13 15:12:20 2012
New Revision: 1243554

URL: http://svn.apache.org/viewvc?rev=1243554&view=rev
Log:
move interp allocation out of modperl_hash_handlers*()

These functions are called in a loop (modperl_mgv_hash_handlers()). Now,
the interp is allocated outside the loop.

Modified:
    perl/modperl/branches/threading/src/modules/perl/modperl_mgv.c

Modified: perl/modperl/branches/threading/src/modules/perl/modperl_mgv.c
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_mgv.c?rev=1243554&r1=1243553&r2=1243554&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/modperl_mgv.c (original)
+++ perl/modperl/branches/threading/src/modules/perl/modperl_mgv.c Mon Feb 13 
15:12:20 2012
@@ -476,10 +476,7 @@ static int modperl_hash_handlers_dir(apr
 {
     int i;
     modperl_config_dir_t *dir_cfg = (modperl_config_dir_t *)cfg;
-#ifdef USE_ITHREADS
-    MP_dSCFG(s);
-    MP_dSCFG_dTHX;
-#endif
+    dTHXa(data);
 
     if (!dir_cfg) {
         return 1;
@@ -497,7 +494,7 @@ static int modperl_hash_handlers_srv(apr
 {
     int i;
     modperl_config_srv_t *scfg = (modperl_config_srv_t *)cfg;
-    MP_dSCFG_dTHX;
+    dTHXa(data);
 
     for (i=0; i < MP_HANDLER_NUM_PER_SRV; i++) {
         modperl_hash_handlers(aTHX_ p, s,
@@ -524,9 +521,16 @@ static int modperl_hash_handlers_srv(apr
 
 void modperl_mgv_hash_handlers(apr_pool_t *p, server_rec *s)
 {
-    ap_pcw_walk_config(p, s, &perl_module, NULL,
+    MP_dINTERPa(NULL, NULL, s);
+    ap_pcw_walk_config(p, s, &perl_module,
+#ifdef USE_ITHREADS
+                       aTHX,
+#else
+                       NULL,
+#endif
                        modperl_hash_handlers_dir,
                        modperl_hash_handlers_srv);
+    MP_INTERP_PUTBACK(interp, aTHX);
 }
 
 /*


Reply via email to