Change 27687 by [EMAIL PROTECTED] on 2006/04/02 20:27:24 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.
Affected files ... ... //depot/perl/perl.h#684 edit ... //depot/perl/pp_ctl.c#541 edit ... //depot/perl/utf8.h#76 edit Differences ... ==== //depot/perl/perl.h#684 (text) ==== Index: perl/perl.h --- perl/perl.h#683~27679~ 2006-04-02 09:32:10.000000000 -0700 +++ perl/perl.h 2006-04-02 13:27:24.000000000 -0700 @@ -4988,7 +4988,7 @@ #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 \ ==== //depot/perl/pp_ctl.c#541 (text) ==== Index: perl/pp_ctl.c --- perl/pp_ctl.c#540~27677~ 2006-04-02 04:17:58.000000000 -0700 +++ perl/pp_ctl.c 2006-04-02 13:27:24.000000000 -0700 @@ -4090,7 +4090,7 @@ 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 @@ /* 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(); ==== //depot/perl/utf8.h#76 (text) ==== Index: perl/utf8.h --- perl/utf8.h#75~26452~ 2005-12-22 11:37:42.000000000 -0800 +++ perl/utf8.h 2006-04-02 13:27:24.000000000 -0700 @@ -188,7 +188,7 @@ * 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 End of Patch.