Full_Name: Martin Schlather Version: R version 2.7.0 Under development (unstable) (2007-10-01 r43043) OS: Linux Submission from: (NULL) (91.3.209.203)
Hi, There are 2 dangers with using 'DUP=FALSE' mentioned: * formal arguments * lists Would you also mention a third one, namely that values in R are now only referenced whenever possible and not always copied; hence .C(..., DUP=FALSE) may change the values of other local variables. E.g., with C code void addone(double *x) { *x = *x + 1; } you get x <- as.double(1) y <- x .C("addone", x, PACKAGE="test", DUP=FALSE) print(c(x,y)) #[1] 2 2 x <- as.double(1) y <- as.double(x) .C("addone", x, PACKAGE="test", DUP=FALSE) print(c(x,y)) #[1] 2 2 x <- as.double(1) y <- as.integer(x) .C("addone", x, PACKAGE="test", DUP=FALSE) print(c(x,y)) #[1] 2 1 Many thanks and kind regards, Martin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel