Re: [PATCH] Re: Storing &PL_sv_undef as a hash key with perl-5.8.x
[p5sagit/p5-mst-13.2.git] / perl.h
diff --git a/perl.h b/perl.h
index 8e35168..acadabe 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -499,7 +499,7 @@ int usleep(unsigned int);
                  panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n");\
                  exit(1); })
 #  define MALLOC_CHECK_TAINT(argc,argv,env)    STMT_START {    \
-       if (PL_earlytaint) {                                    \
+       if (doing_taint(argc,argv,env)) {                       \
                MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1;      \
     }} STMT_END;
 #else  /* MYMALLOC */
@@ -1935,28 +1935,17 @@ typedef struct clone_params CLONE_PARAMS;
 #    define PERL_FPU_INIT fpsetmask(0);
 #  else
 #    if defined(SIGFPE) && defined(SIG_IGN)
-#      define PERL_FPU_INIT signal(SIGFPE, SIG_IGN);
+#      define PERL_FPU_INIT       PL_sigfpe_saved = signal(SIGFPE, SIG_IGN);
+#      define PERL_FPU_PRE_EXEC   { Sigsave_t xfpe; rsignal_save(SIGFPE, PL_sigfpe_saved, &xfpe);
+#      define PERL_FPU_POST_EXEC    rsignal_restore(SIGFPE, &xfpe); }
 #    else
 #      define PERL_FPU_INIT
 #    endif
 #  endif
 #endif
-
-/* The PL_earlytaint is to be used instead PL_tainting before
- * perl_parse() has had the chance to set up PL_tainting. */
-
-#ifndef EARLY_INIT3
-#  define EARLY_INIT3(argcp,argvp,envp) \
-       STMT_START {            \
-               PL_earlytaint = doing_taint(argcp, argvp, envp); \
-       } STMT_END;
-#endif
-
-#ifndef EARLY_INIT2
-#  define EARLY_INIT2(argcp,argvp) \
-       STMT_START {            \
-               PL_earlytaint = doing_taint(argcp, argvp, 0); \
-       } STMT_END;
+#ifndef PERL_FPU_PRE_EXEC
+#  define PERL_FPU_PRE_EXEC   {
+#  define PERL_FPU_POST_EXEC  }
 #endif
 
 #ifndef PERL_SYS_INIT3
@@ -2269,7 +2258,7 @@ typedef        struct crypt_data {     /* straight from /usr/include/crypt.h */
 
 /* [perl #22371] Algorimic Complexity Attack on Perl 5.6.1, 5.8.0 */
 #if !defined(NO_HASH_SEED) && !defined(USE_HASH_SEED) && !defined(USE_HASH_SEED_EXPLICIT)
-#  define USE_HASH_SEED
+#  define USE_HASH_SEED_EXPLICIT
 #endif
 
 #include "regexp.h"