From: Nicholas Clark Date: Sun, 2 Apr 2006 20:27:24 +0000 (+0000) Subject: Change 27677 missed two direct accesses to op_private in COPs. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a98fe34d09e2476f1a21bfb9dc730dc9ab02b0b4;p=p5sagit%2Fp5-mst-13.2.git Change 27677 missed two direct accesses to op_private in COPs. I believe that all are now found, as redefining CopHINTS_get(c) to (~(c)->op_private) (with corresponding changes to CopHINTS_set() and the initialisation of PL_compiling) works. p4raw-id: //depot/perl@27687 --- diff --git a/perl.h b/perl.h index 1fffc52..661af3e 100644 --- a/perl.h +++ b/perl.h @@ -4988,7 +4988,7 @@ typedef struct am_table_short AMTS; #define SET_NUMERIC_LOCAL() \ set_numeric_local(); -#define IN_LOCALE_RUNTIME (PL_curcop->op_private & HINT_LOCALE) +#define IN_LOCALE_RUNTIME (CopHINTS_get(PL_curcop) & HINT_LOCALE) #define IN_LOCALE_COMPILETIME (PL_hints & HINT_LOCALE) #define IN_LOCALE \ diff --git a/pp_ctl.c b/pp_ctl.c index 26c4ea1..cb35b59 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -4090,7 +4090,7 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other) PUSHs(other); PUSHs(*svp); PUTBACK; - if ((PL_curcop->op_private & HINT_INTEGER) == HINT_INTEGER) + if (CopHINTS_get(PL_curcop) & HINT_INTEGER) (void) pp_i_eq(); else (void) pp_eq(); @@ -4184,7 +4184,7 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other) /* Otherwise, numeric comparison */ PUSHs(d); PUSHs(e); PUTBACK; - if ((PL_curcop->op_private & HINT_INTEGER) == HINT_INTEGER) + if (CopHINTS_get(PL_curcop) & HINT_INTEGER) (void) pp_i_eq(); else (void) pp_eq(); diff --git a/utf8.h b/utf8.h index 64dc393..9bf3928 100644 --- a/utf8.h +++ b/utf8.h @@ -188,7 +188,7 @@ encoded character. * SpecialCasing.txt. */ #define UTF8_MAXBYTES_CASE 6 -#define IN_BYTES (PL_curcop->op_private & HINT_BYTES) +#define IN_BYTES (CopHINTS_get(PL_curcop) & HINT_BYTES) #define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES) #define UTF8_ALLOW_EMPTY 0x0001