Hi,

the following example aiming at a class containing a logical slot
segfaults under R-1.9.0 when `gctorture(on = TRUE)' is used:

Code code (dummy.c):

#include <Rdefines.h>

SEXP foo() {

    SEXP ans;

    PROTECT(ans = NEW_OBJECT(MAKE_CLASS("test")));
    SET_SLOT(ans, install("lgl"), allocVector(LGLSXP, 1));
    LOGICAL(GET_SLOT(ans, install("lgl")))[0] = TRUE;
    UNPROTECT(1);
    return(ans);
}

R code (dummy.R):

dyn.load("dummy.so")

setClass("test", representation = representation(lgl = "logical"))

a = .Call("foo")
a # OK

gctorture(on = TRUE)
a = .Call("foo")
gctorture(on = FALSE)
a # segfault

which gives

R>
R>
R> dyn.load("dummy.so")
R>
R> setClass("test", representation = representation(lgl = "logical"))
[1] "test"
R>
R> a = .Call("foo")
R> a
An object of class "test"
Slot "lgl":
[1] TRUE

R>
R> gctorture(on = TRUE)
R> a = .Call("foo")
R> gctorture(on = FALSE)
Segmentation fault

Best,

Torsten

R> version
         _
platform i686-pc-linux-gnu
arch     i686
os       linux-gnu
system   i686, linux-gnu
status
major    1
minor    9.0
year     2004
month    04
day      12
language R
R>



 _______________________________________________________________________
|                                                                       |
|       Dr. rer. nat. Torsten Hothorn                                   |
|       Institut fuer Medizininformatik, Biometrie und Epidemiologie    |
|       Waldstrasse 6, D-91054 Erlangen, Deutschland                    |
|       Tel: ++49-9131-85-22707 (dienstl.)                              |
|       Fax: ++49-9131-85-25740                                         |
|       Email:  [EMAIL PROTECTED]                       |
|               PLEASE send emails cc to [EMAIL PROTECTED]              |
|       Web: http://www.imbe.med.uni-erlangen.de/~hothorn               |
|_______________________________________________________________________|

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Reply via email to