diff --git a/util.c b/util.c index 753681981c2c..c30588520f4d 100644 --- a/util.c +++ b/util.c @@ -4888,6 +4888,14 @@ S_mem_log_common(enum mem_log_type mlt, const UV n, PERL_ARGS_ASSERT_MEM_LOG_COMMON; +#ifdef WIN32 + + if (PL_phase == PERL_PHASE_CONSTRUCT) { + return; + } + +#endif + PL_mem_log[0] |= 0x2; /* Flag that the call is from this code */ pmlenv = PerlEnv_getenv("PERL_MEM_LOG"); PL_mem_log[0] &= ~0x2; diff --git a/win32/perlhost.h b/win32/perlhost.h index 9a2e24ccd3f0..6fd296783381 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -453,7 +453,9 @@ const struct IPerlMem perlMemParse = char* PerlEnvGetenv(struct IPerlEnv* piPerl, const char *varname) { - return IPERL2HOST(piPerl)->Getenv(varname); + + // The mortal version causes run/switchd.t et. al. to fail + return IPERL2HOST(piPerl)->Getenv(varname); //Perl_mortal_getenv(varname); }; int