I am trying to use a custom S4 object in my C code and I cannot get the
access to its slots working.

 

The following is a toy example, but even this crashes. 

 

In R I have:

 

setClass("pd", representation(data="numeric"))

x <- new("pd", data=1:5)

 

test <- function(pd.obj) {

  res <- .C("TestFun", pd.obj)

  res}

 

test(x)

 

(Of couse I load the DLL as well.)

 

The corresponding C file has:

 

SEXP TestFun(SEXP pd_obj)

{

 SEXP t=R_NilValue;

 PROTECT(t = GET_SLOT(pd_obj, install("data")));

 UNPROTECT(1);

 return(t);

}

 

 

What I hope to get as a result is the (1:5) vector. 

In the long term, the vector will be a multi-dimensional array and I
will want to do calculations using its contents in the C program.

 

Thanks for any help,

 

Aniko


Huntsman Cancer Institute wishes to promote open communication while protecting confidential and/or privileged information.  If you have received this message in error, please inform the sender and delete all copies.


	[[alternative HTML version deleted]]


