This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert change #24223 : select() will continue
[perl5.git] / op.h
diff --git a/op.h b/op.h
index d72c52e..2c4937f 100644 (file)
--- a/op.h
+++ b/op.h
@@ -1,7 +1,7 @@
 /*    op.h
  *
  *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2003, 2004, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -184,6 +184,7 @@ Deprecated.  Use C<GIMME_V> instead.
 #define OPpITER_REVERSED       4       /* for (reverse ...) */
 
 /* Private for OP_CONST */
+#define        OPpCONST_NOVER          2       /* no 6; */
 #define        OPpCONST_SHORTCIRCUIT   4       /* eg the constant 5 in (5 || foo) */
 #define        OPpCONST_STRICT         8       /* bearword subject to strict 'subs' */
 #define OPpCONST_ENTERED       16      /* Has been entered as symbol. */
@@ -267,7 +268,7 @@ struct pmop {
     BASEOP
     OP *       op_first;
     OP *       op_last;
-    OP *       op_pmreplroot;
+    OP *       op_pmreplroot; /* (type is really union {OP*,GV*,PADOFFSET}) */
     OP *       op_pmreplstart;
     PMOP *     op_pmnext;              /* list of all scanpats */
 #ifdef USE_ITHREADS
@@ -330,13 +331,13 @@ struct pmop {
 #  define PmopSTASHPV_set(o,pv)        (PmopSTASHPV(o) = savesharedpv(pv))
 #  define PmopSTASH(o)         (PmopSTASHPV(o) \
                                 ? gv_stashpv(PmopSTASHPV(o),GV_ADD) : Nullhv)
-#  define PmopSTASH_set(o,hv)  PmopSTASHPV_set(o, ((hv) ? HvNAME(hv) : Nullch))
+#  define PmopSTASH_set(o,hv)  PmopSTASHPV_set(o, ((hv) ? HvNAME_get(hv) : Nullch))
 #  define PmopSTASH_free(o)    PerlMemShared_free(PmopSTASHPV(o))
 
 #else
 #  define PmopSTASH(o)         ((o)->op_pmstash)
 #  define PmopSTASH_set(o,hv)  ((o)->op_pmstash = (hv))
-#  define PmopSTASHPV(o)       (PmopSTASH(o) ? HvNAME(PmopSTASH(o)) : Nullch)
+#  define PmopSTASHPV(o)       (PmopSTASH(o) ? HvNAME_get(PmopSTASH(o)) : Nullch)
    /* op_pmstash is not refcounted */
 #  define PmopSTASHPV_set(o,pv)        PmopSTASH_set((o), gv_stashpv(pv,GV_ADD))
 #  define PmopSTASH_free(o)    
@@ -481,8 +482,13 @@ struct loop {
 
 #ifdef USE_ITHREADS
 #  define OP_REFCNT_INIT               MUTEX_INIT(&PL_op_mutex)
-#  define OP_REFCNT_LOCK               MUTEX_LOCK(&PL_op_mutex)
-#  define OP_REFCNT_UNLOCK             MUTEX_UNLOCK(&PL_op_mutex)
+#  ifdef PERL_CORE
+#    define OP_REFCNT_LOCK             MUTEX_LOCK(&PL_op_mutex)
+#    define OP_REFCNT_UNLOCK           MUTEX_UNLOCK(&PL_op_mutex)
+#  else
+#    define OP_REFCNT_LOCK             op_refcnt_lock()
+#    define OP_REFCNT_UNLOCK           op_refcnt_unlock()
+#  endif
 #  define OP_REFCNT_TERM               MUTEX_DESTROY(&PL_op_mutex)
 #else
 #  define OP_REFCNT_INIT               NOOP
@@ -511,7 +517,7 @@ struct loop {
        (var = (OP *) Perl_Slab_Alloc(aTHX_ m,size))
 #define FreeOp(p) Perl_Slab_Free(aTHX_ p)
 #else
-#define NewOp(m, var, c, type) Newz(m, var, c, type)
+#define NewOp(m, var, c, type) Newxz(var, c, type)
 #define NewOpSz(m, var, size)  \
        (var = (OP*)safemalloc(size), memzero(var, size))
 #define FreeOp(p) Safefree(p)