The R Project SVN R

Rev

Rev 80166 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 80166 Rev 80452
Line 1078... Line 1078...
1078
	ans = VECTOR_ELT(x, offset);
1078
	ans = VECTOR_ELT(x, offset);
1079
#ifndef SWITCH_TO_REFCNT
1079
#ifndef SWITCH_TO_REFCNT
1080
	RAISE_NAMED(ans, named_x);
1080
	RAISE_NAMED(ans, named_x);
1081
#endif
1081
#endif
1082
    } else {
1082
    } else {
1083
	ans = allocVector(TYPEOF(x), 1);
1083
	ans = PROTECT(allocVector(TYPEOF(x), 1));
1084
	switch (TYPEOF(x)) {
1084
	switch (TYPEOF(x)) {
1085
	case LGLSXP:
1085
	case LGLSXP:
1086
	    LOGICAL0(ans)[0] = LOGICAL_ELT(x, offset);
1086
	    LOGICAL0(ans)[0] = LOGICAL_ELT(x, offset);
1087
	    break;
1087
	    break;
1088
	case INTSXP:
1088
	case INTSXP:
Line 1101... Line 1101...
1101
	    RAW0(ans)[0] = RAW_ELT(x, offset);
1101
	    RAW0(ans)[0] = RAW_ELT(x, offset);
1102
	    break;
1102
	    break;
1103
	default:
1103
	default:
1104
	    UNIMPLEMENTED_TYPE("do_subset2", x);
1104
	    UNIMPLEMENTED_TYPE("do_subset2", x);
1105
	}
1105
	}
-
 
1106
	UNPROTECT(1); /* ans */
1106
    }
1107
    }
1107
    UNPROTECT(2); /* args, x */
1108
    UNPROTECT(2); /* args, x */
1108
    return ans;
1109
    return ans;
1109
}
1110
}
1110
 
1111