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.

Reply via email to