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;