another threads reliability fix: serialize writes to thr->threadsv
[p5sagit/p5-mst-13.2.git] / ext / attrs / attrs.xs
index 2de522a..7f7970d 100644 (file)
@@ -9,8 +9,6 @@ get_flag(char *attr)
        return CVf_METHOD;
     else if (strnEQ(attr, "locked", 6))
        return CVf_LOCKED;
-    else if (strnEQ(attr, "package", 7))
-       return CVf_PACKAGE;
     else
        return 0;
 }
@@ -26,10 +24,11 @@ char *      Class
        int i;
        CV *cv;
     PPCODE:
-       if (!compcv || !(cv = CvOUTSIDE(compcv)))
+       if (!PL_compcv || !(cv = CvOUTSIDE(PL_compcv)))
            croak("can't set attributes outside a subroutine scope");
        for (i = 1; i < items; i++) {
-           char *attr = SvPV(ST(i), na);
+           STRLEN n_a;
+           char *attr = SvPV(ST(i), n_a);
            cv_flags_t flag = get_flag(attr);
            if (!flag)
                croak("invalid attribute name %s", attr);
@@ -49,7 +48,8 @@ SV *  sub
                sub = Nullsv;
        }
        else {
-           char *name = SvPV(sub, na);
+           STRLEN n_a;
+           char *name = SvPV(sub, n_a);
            sub = (SV*)perl_get_cv(name, FALSE);
        }
        if (!sub)
@@ -58,6 +58,4 @@ SV *  sub
            XPUSHs(sv_2mortal(newSVpv("method", 0)));
        if (CvFLAGS(sub) & CVf_LOCKED)
            XPUSHs(sv_2mortal(newSVpv("locked", 0)));
-       if (CvFLAGS(sub) & CVf_PACKAGE)
-           XPUSHs(sv_2mortal(newSVpv("package", 0)));