Bump $B::Deparse::VERSION
[p5sagit/p5-mst-13.2.git] / ext / B / B.xs
index 2f87065..3912640 100644 (file)
@@ -29,11 +29,11 @@ static char *svclassnames[] = {
     "B::PVNV",
     "B::PVMG",
     "B::BM",
+    "B::GV",
     "B::PVLV",
     "B::AV",
     "B::HV",
     "B::CV",
-    "B::GV",
     "B::FM",
     "B::IO",
 };
@@ -416,9 +416,9 @@ oplist(pTHX_ OP *o, SV **SP)
 {
     for(; o; o = o->op_next) {
        SV *opsv;
-       if (o->op_seq == 0) 
+       if (o->op_opt == 0) 
            break;
-       o->op_seq = 0;
+       o->op_opt = 0;
        opsv = sv_newmortal();
        sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ (OP*)o)), PTR2IV(o));
        XPUSHs(opsv);
@@ -427,11 +427,11 @@ oplist(pTHX_ OP *o, SV **SP)
             SP = oplist(aTHX_ cPMOPo->op_pmreplstart, SP);
             continue;
        case OP_SORT:
-           if (o->op_flags & (OPf_STACKED|OPf_SPECIAL)) {
+           if (o->op_flags & OPf_STACKED && o->op_flags & OPf_SPECIAL) {
                OP *kid = cLISTOPo->op_first->op_sibling;   /* pass pushmark */
                kid = kUNOP->op_first;                      /* pass rv2gv */
                kid = kUNOP->op_first;                      /* pass leave */
-               SP = oplist(aTHX_ kid, SP);
+               SP = oplist(aTHX_ kid->op_next, SP);
            }
            continue;
         }
@@ -714,7 +714,8 @@ threadsv_names()
 #define OP_desc(o)     PL_op_desc[o->op_type]
 #define OP_targ(o)     o->op_targ
 #define OP_type(o)     o->op_type
-#define OP_seq(o)      o->op_seq
+#define OP_opt(o)      o->op_opt
+#define OP_static(o)   o->op_static
 #define OP_flags(o)    o->op_flags
 #define OP_private(o)  o->op_private
 
@@ -771,8 +772,12 @@ U16
 OP_type(o)
        B::OP           o
 
-U16
-OP_seq(o)
+U8
+OP_opt(o)
+       B::OP           o
+
+U8
+OP_static(o)
        B::OP           o
 
 U8