remove op_static
Paul Johnson [Fri, 22 Jun 2007 02:13:20 +0000 (04:13 +0200)]
Message-ID: <20070622001320.GD20560@pjcj.net>

Plus version bumps

p4raw-id: //depot/perl@31461

ext/B/B.pm
ext/B/B.xs
ext/B/B/Concise.pm
ext/B/B/Debug.pm
op.c
op.h

index 13ff5b3..fdf79ae 100644 (file)
@@ -7,7 +7,7 @@
 #
 package B;
 
-our $VERSION = '1.15';
+our $VERSION = '1.16';
 
 use XSLoader ();
 require Exporter;
@@ -1017,8 +1017,6 @@ This returns the op description from the global C PL_op_desc array
 
 =item opt
 
-=item static
-
 =item flags
 
 =item private
index 99c1409..4370c3e 100644 (file)
@@ -845,7 +845,6 @@ threadsv_names()
 #define OP_type(o)     o->op_type
 #if PERL_VERSION >= 9
 #  define OP_opt(o)    o->op_opt
-#  define OP_static(o) o->op_static
 #else
 #  define OP_seq(o)    o->op_seq
 #endif
@@ -912,10 +911,6 @@ U8
 OP_opt(o)
        B::OP           o
 
-U8
-OP_static(o)
-       B::OP           o
-
 #else
 
 U16
index 77d6c8a..911acf9 100644 (file)
@@ -14,7 +14,7 @@ use warnings; # uses #3 and #4, since warnings uses Carp
 
 use Exporter (); # use #5
 
-our $VERSION   = "0.71";
+our $VERSION   = "0.72";
 our @ISA       = qw(Exporter);
 our @EXPORT_OK = qw( set_style set_style_standard add_callback
                     concise_subref concise_cv concise_main
@@ -817,7 +817,6 @@ sub concise_op {
     $h{seq} = "" if $h{seq} eq "-";
     if ($] > 5.009) {
        $h{opt} = $op->opt;
-       $h{static} = $op->static;
        $h{label} = $labels{$$op};
     } else {
        $h{seqnum} = $op->seq;
@@ -1502,13 +1501,6 @@ Whether or not the op has been optimised by the peephole optimiser.
 
 Only available in 5.9 and later.
 
-=item B<#static>
-
-Whether or not the op is statically defined.  This flag is used by the
-B::C compiler backend and indicates that the op should not be freed.
-
-Only available in 5.9 and later.
-
 =item B<#sibaddr>
 
 The address of the OP's next youngest sibling, in hexadecimal.
index 0e1d224..53b6e3a 100644 (file)
@@ -1,6 +1,6 @@
 package B::Debug;
 
-our $VERSION = '1.04';
+our $VERSION = '1.05';
 
 use strict;
 use B qw(peekop class walkoptree walkoptree_exec
@@ -19,9 +19,8 @@ sub B::OP::debug {
        op_type         %d
 EOT
     if ($] > 5.009) {
-       printf <<'EOT', $op->opt, $op->static;
+       printf <<'EOT', $op->opt;
        op_opt          %d
-       op_static       %d
 EOT
     } else {
        printf <<'EOT', $op->seq;
diff --git a/op.c b/op.c
index 731dce4..613cc2e 100644 (file)
--- a/op.c
+++ b/op.c
@@ -423,7 +423,7 @@ Perl_op_free(pTHX_ OP *o)
     dVAR;
     OPCODE type;
 
-    if (!o || o->op_static)
+    if (!o)
        return;
     if (o->op_latefreed) {
        if (o->op_latefree)
diff --git a/op.h b/op.h
index c340f04..f9147cd 100644 (file)
--- a/op.h
+++ b/op.h
  *     op_type         The type of the operation.
  *     op_opt          Whether or not the op has been optimised by the
  *                     peephole optimiser.
- *     op_static       Whether or not the op is statically defined.
- *                     This flag is used by the B::C compiler backend
- *                     and indicates that the op should not be freed.
  *
  *                     See the comments in S_clear_yystack() for more
  *                     details on the following three flags:
-
+ *
  *     op_latefree     tell op_free() to clear this op (and free any kids)
  *                     but not yet deallocate the struct. This means that
  *                     the op may be safely op_free()d multiple times
  *     op_latefreed    an op_latefree op has been op_free()d
  *     op_attached     this op (sub)tree has been attached to a CV
  *
- *     op_spare        two spare bits!
+ *     op_spare        three spare bits!
  *     op_flags        Flags common to all operations.  See OPf_* below.
  *     op_private      Flags peculiar to a particular operation (BUT,
  *                     by default, set to the number of children until
     PADOFFSET  op_targ;                \
     unsigned   op_type:9;              \
     unsigned   op_opt:1;               \
-    unsigned   op_static:1;            \
     unsigned   op_latefree:1;          \
     unsigned   op_latefreed:1;         \
     unsigned   op_attached:1;          \
-    unsigned   op_spare:2;             \
+    unsigned   op_spare:3;             \
     U8         op_flags;               \
     U8         op_private;
 #endif