Hello, I created an S3 "type" w/c is actually a list that should look like a matrix but whose data is actually in an external file. The SEXP just contains info on how to retrieve the data from the file. When I get to the part of creating the SEXP, I found out that SET_DIM & SET_DIMNAME checks the SEXP if the length matches (somewhere in src/main/attrib.c, dimgets & dimnamegets IIRC (it's on my other partition. life sucks)). After a quick look at the R code, I tried to bypass them by doing:
static void _installAttrib(SEXP obj, SEXP name, SEXP value) { /* to bypass dim & dimnames property checking */ SEXP attr, cur_attr; PROTECT(attr = NEW_LIST(1)); SETCAR(attr, value); SET_TAG(attr, name); if (ATTRIB(obj) == R_NilValue) SET_ATTRIB(obj, attr); else { cur_attr = nthcdr(ATTRIB(obj), length(ATTRIB(obj)) - 1); SETCDR(cur_attr, attr); } UNPROTECT(1); } but it crashes R. Is there any other way to do this other than copying those code in R that was not included in the API ? Thanks, M. Manese ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel