Author: stevehay Date: Wed Nov 6 18:03:50 2013 New Revision: 1539412 URL: http://svn.apache.org/r1539412 Log: Make MP_INTERPa and MP_INTERP_POOLa more robust in the event of modperl_interp_select() returning NULL.
Modified: perl/modperl/branches/httpd24threading/src/modules/perl/modperl_interp.h Modified: perl/modperl/branches/httpd24threading/src/modules/perl/modperl_interp.h URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24threading/src/modules/perl/modperl_interp.h?rev=1539412&r1=1539411&r2=1539412&view=diff ============================================================================== --- perl/modperl/branches/httpd24threading/src/modules/perl/modperl_interp.h (original) +++ perl/modperl/branches/httpd24threading/src/modules/perl/modperl_interp.h Wed Nov 6 18:03:50 2013 @@ -57,9 +57,15 @@ modperl_interp_t *modperl_interp_select( MP_TRACE_i(MP_FUNC, "selecting interp: r=%pp, c=%pp, s=%pp", \ (r), (c), (s)); \ interp = modperl_interp_select((r), (c), (s)); \ - MP_TRACE_i(MP_FUNC, " --> got (0x%pp)->refcnt=%d, perl=%pp", \ - interp, interp->refcnt, interp->perl); \ - aTHX = interp->perl + if (interp) { \ + MP_TRACE_i(MP_FUNC, " --> got (0x%pp)->refcnt=%d, perl=%pp", \ + interp, interp->refcnt, interp->perl); \ + aTHX = interp->perl; \ + } \ + else { \ + MP_TRACE_i(MP_FUNC, " --> failed"); \ + } \ + NOOP #define MP_dINTERPa(r, c, s) \ MP_dINTERP; \ @@ -68,9 +74,15 @@ modperl_interp_t *modperl_interp_select( #define MP_INTERP_POOLa(p, s) \ MP_TRACE_i(MP_FUNC, "selecting interp: p=%pp, s=%pp", (p), (s)); \ interp = modperl_interp_pool_select((p), (s)); \ - MP_TRACE_i(MP_FUNC, " --> got (0x%pp)->refcnt=%d", \ - interp, interp->refcnt); \ - aTHX = interp->perl + if (interp) { \ + MP_TRACE_i(MP_FUNC, " --> got (0x%pp)->refcnt=%d", \ + interp, interp->refcnt); \ + aTHX = interp->perl; \ + } \ + else { \ + MP_TRACE_i(MP_FUNC, " --> failed"); \ + } \ + NOOP #define MP_dINTERP_POOLa(p, s) \ MP_dINTERP; \