SEXP setReadOnly_R(SEXP s, SEXP readOnly) { AbstractMatrix * p = getAbstractMatrixFromSEXP(s); if (p == NULL) { error_R("pointer is NULL\n"); return R_NilValue; } bool readonly = LOGICAL(readOnly)[0]; bool result = p->setReadOnly(readonly); SEXP ret; PROTECT(ret = allocVector(LGLSXP, 1)); LOGICAL(ret)[0] = result?TRUE:FALSE; UNPROTECT(1); return ret; }