Author: torsten
Date: Tue Mar  1 13:15:20 2011
New Revision: 1075807

URL: http://svn.apache.org/viewvc?rev=1075807&view=rev
Log:
reintroduce MP_dTHX macro

Modified:
    perl/modperl/branches/threading/src/modules/perl/modperl_config.h
    perl/modperl/branches/threading/src/modules/perl/modperl_interp.c

Modified: perl/modperl/branches/threading/src/modules/perl/modperl_config.h
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_config.h?rev=1075807&r1=1075806&r2=1075807&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/modperl_config.h (original)
+++ perl/modperl/branches/threading/src/modules/perl/modperl_config.h Tue Mar  
1 13:15:20 2011
@@ -36,7 +36,7 @@ void *modperl_config_srv_merge(apr_pool_
 char **modperl_config_srv_argv_init(modperl_config_srv_t *scfg, int *argc);
 
 #define modperl_config_srv_argv_push(arg)               \
-    *(const char **)apr_array_push(scfg->argv) = arg
+    *(const char **)apr_array_push(scfg->argv) = (arg)
 
 apr_status_t modperl_config_request_cleanup(pTHX_ request_rec *r);
 
@@ -49,9 +49,9 @@ apr_status_t modperl_config_req_cleanup(
 #define modperl_config_req_cleanup_register(r, rcfg)           \
     if (r && !MpReqCLEANUP_REGISTERED(rcfg)) {                 \
         apr_pool_t *p;                                         \
-        apr_pool_create(&p, r->pool);                          \
+        apr_pool_create(&p, (r)->pool);                        \
         apr_pool_cleanup_register(p,                           \
-                                  (void*)r,                    \
+                                  (void*)(r),                  \
                                   modperl_config_req_cleanup,  \
                                   apr_pool_cleanup_null);      \
         MpReqCLEANUP_REGISTERED_On(rcfg);                      \
@@ -64,25 +64,25 @@ void modperl_set_perl_module_config(ap_c
 #   define modperl_get_module_config(v)         \
     modperl_get_perl_module_config(v)
 
-#   define modperl_set_module_config(v, c)      \
-    modperl_set_perl_module_config(v, c)
+#   define modperl_set_module_config((v), c)    \
+    modperl_set_perl_module_config((v), (c))
 #else
 #   define modperl_get_module_config(v)         \
-    ap_get_module_config(v, &perl_module)
+    ap_get_module_config((v), &perl_module)
 
 #   define modperl_set_module_config(v, c)      \
-    ap_set_module_config(v, &perl_module, c)
+    ap_set_module_config((v), &perl_module, (c))
 #endif
 
 #define modperl_config_req_init(r, rcfg)                    \
-    if (!rcfg) {                                            \
-        rcfg = modperl_config_req_new(r);                   \
-        modperl_set_module_config(r->request_config, rcfg); \
+    if (!(rcfg)) {                                          \
+        (rcfg) = modperl_config_req_new(r);                 \
+        modperl_set_module_config((r)->request_config, (rcfg)); \
     }
 
 #define modperl_config_req_get(r)                               \
     (r ? (modperl_config_req_t *)                               \
-     modperl_get_module_config(r->request_config) : NULL)
+     modperl_get_module_config((r)->request_config) : NULL)
 
 #define MP_dRCFG \
     modperl_config_req_t *rcfg = modperl_config_req_get(r)
@@ -90,23 +90,23 @@ void modperl_set_perl_module_config(ap_c
 #define modperl_config_con_init(c, ccfg)                 \
     if (!ccfg) {                                         \
         ccfg = modperl_config_con_new(c);                \
-        modperl_set_module_config(c->conn_config, ccfg); \
+        modperl_set_module_config((c)->conn_config, (ccfg));    \
     }
 
 #define modperl_config_con_get(c)                               \
     (c ? (modperl_config_con_t *)                               \
-     modperl_get_module_config(c->conn_config) : NULL)
+     modperl_get_module_config((c)->conn_config) : NULL)
 
 #define MP_dCCFG \
     modperl_config_con_t *ccfg = modperl_config_con_get(c)
 
 #define modperl_config_dir_get(r)                               \
     (r ? (modperl_config_dir_t *)                               \
-     modperl_get_module_config(r->per_dir_config) : NULL)
+     modperl_get_module_config((r)->per_dir_config) : NULL)
 
 #define modperl_config_dir_get_defaults(s)              \
     (modperl_config_dir_t *)                            \
-        modperl_get_module_config(s->lookup_defaults)
+    modperl_get_module_config((s)->lookup_defaults)
 
 #define MP_dDCFG \
     modperl_config_dir_t *dcfg = modperl_config_dir_get(r)
@@ -126,6 +126,17 @@ void modperl_set_perl_module_config(ap_c
 #   define MP_dSCFG_dTHX dTHXa(scfg->perl)
 #endif
 
+/* hopefully this macro will not need to be used often */
+#ifdef USE_ITHREADS
+#   define MP_dTHX                                                   \
+    modperl_interp_t *interp = modperl_interp_select(r, NULL, NULL); \
+    dTHXa(interp->perl)
+#   define MP_uTHX modperl_interp_unselect(interp)
+#else
+#   define MP_dTHX dNOOP
+#   define MP_uTHX dNOOP
+#endif
+
 int modperl_config_apply_PerlModule(server_rec *s,
                                     modperl_config_srv_t *scfg,
                                     PerlInterpreter *perl, apr_pool_t *p);

Modified: perl/modperl/branches/threading/src/modules/perl/modperl_interp.c
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_interp.c?rev=1075807&r1=1075806&r2=1075807&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/modperl_interp.c (original)
+++ perl/modperl/branches/threading/src/modules/perl/modperl_interp.c Tue Mar  
1 13:15:20 2011
@@ -406,7 +406,7 @@ modperl_interp_t *modperl_interp_pool_se
 modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c,
                                         server_rec *s)
 {
-    MP_dSCFG(s);
+    MP_dSCFG((s ? s : r ? r->server : NULL));
     MP_dDCFG;
     modperl_config_con_t *ccfg;
     const char *desc = NULL;


Reply via email to