This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Regenerate perlapi.pod.
[perl5.git] / op.h
diff --git a/op.h b/op.h
index 889b3ea..2e73168 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, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, 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.
@@ -153,8 +153,8 @@ Deprecated.  Use C<GIMME_V> instead.
 /* Private for OP_REPEAT */
 #define OPpREPEAT_DOLIST       64      /* List replication. */
 
-/* Private for OP_RV2?V, OP_?ELEM */
-#define OPpDEREF               (32|64) /* Want ref to something: */
+/* Private for OP_RV2GV, OP_RV2SV, OP_AELEM, OP_HELEM, OP_PADSV */
+#define OPpDEREF               (32|64) /* autovivify: Want ref to something: */
 #define OPpDEREF_AV            32      /*   Want ref to AV. */
 #define OPpDEREF_HV            64      /*   Want ref to HV. */
 #define OPpDEREF_SV            (32|64) /*   Want ref to SV. */
@@ -180,7 +180,11 @@ Deprecated.  Use C<GIMME_V> instead.
   /* (lower bits may carry MAXARG) */
 #define OPpTARGET_MY           16      /* Target is PADMY. */
 
+/* Private for OP_ENTERITER and OP_ITER */
+#define OPpITER_REVERSED       4       /* for (reverse ...) */
+
 /* Private for OP_CONST */
+#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. */
 #define OPpCONST_ARYBASE       32      /* Was a $[ translated to constant. */
@@ -202,8 +206,9 @@ Deprecated.  Use C<GIMME_V> instead.
 /* Private for OP_SORT */
 #define OPpSORT_NUMERIC                1       /* Optimized away { $a <=> $b } */
 #define OPpSORT_INTEGER                2       /* Ditto while under "use integer" */
-#define OPpSORT_REVERSE                4       /* Descending sort */
+#define OPpSORT_REVERSE                4       /* Reversed sort */
 #define OPpSORT_INPLACE                8       /* sort in-place; eg @a = sort @a */
+#define OPpSORT_DESCEND                16      /* Descending sort */
 /* Private for OP_THREADSV */
 #define OPpDONE_SVREF          64      /* Been through newSVREF once */
 
@@ -476,8 +481,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