/* xsutils.c
*
- * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+ * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
* by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
switch (SvTYPE(sv)) {
case SVt_PVCV:
switch ((int)len) {
+#ifdef CVf_ASSERTION
+ case 9:
+ if (memEQ(name, "assertion", 9)) {
+ if (negated)
+ CvFLAGS((CV*)sv) &= ~CVf_ASSERTION;
+ else
+ CvFLAGS((CV*)sv) |= CVf_ASSERTION;
+ continue;
+ }
+ break;
+#endif
case 6:
- switch (*name) {
- case 'a':
- if (strEQ(name, "assertion")) {
- if (negated)
- CvFLAGS((CV*)sv) &= ~CVf_ASSERTION;
- else
- CvFLAGS((CV*)sv) |= CVf_ASSERTION;
- continue;
- }
- break;
+ switch (name[3]) {
case 'l':
#ifdef CVf_LVALUE
- if (strEQ(name, "lvalue")) {
+ if (memEQ(name, "lvalue", 6)) {
if (negated)
CvFLAGS((CV*)sv) &= ~CVf_LVALUE;
else
CvFLAGS((CV*)sv) |= CVf_LVALUE;
continue;
}
+ break;
+ case 'k':
#endif /* defined CVf_LVALUE */
- if (strEQ(name, "locked")) {
+ if (memEQ(name, "locked", 6)) {
if (negated)
CvFLAGS((CV*)sv) &= ~CVf_LOCKED;
else
continue;
}
break;
- case 'm':
- if (strEQ(name, "method")) {
+ case 'h':
+ if (memEQ(name, "method", 6)) {
if (negated)
CvFLAGS((CV*)sv) &= ~CVf_METHOD;
else
default:
switch ((int)len) {
case 6:
- switch (*name) {
- case 's':
- if (strEQ(name, "shared")) {
+ switch (name[5]) {
+ case 'd':
+ if (memEQ(name, "share", 5)) {
if (negated)
Perl_croak(aTHX_ "A variable may not be unshared");
SvSHARE(sv);
continue;
}
break;
- case 'u':
- if (strEQ(name, "unique")) {
+ case 'e':
+ if (memEQ(name, "uniqu", 5)) {
if (SvTYPE(sv) == SVt_PVGV) {
if (negated)
GvUNIQUE_off(sv);