setCheckSEXP
Validate SEXP Rapi Object Pointers
Description
Enables or disables validation of SEXP Rapi object pointers.
Usage
setCheckSEXP(value)
Arguments
value |
a logical value. Specifies whether to enable the SEXP check table.
|
Details
The .Call and .External functions pass Rapi object
pointers (with the C type SEXP) to a C function, which should return an
SEXP value. The C function can call into the engine, passing SEXP
arguments to Rapi entry functions.
If the C function has a mistake, it might pass the engine a garbage
value as an SEXP argument, or it might return a garbage pointer. If the
engine tries to follow this pointer, it can cause a segmentation fault
and crash the process.
To avoid this possible outcome, Spotfire Enterprise Runtime for R optionally maintains a hash table
containing all of the known SEXP pointers. Spotfire Enterprise Runtime for R uses this table to
check each SEXP it is given, giving an error or a warning if a bad SEXP
is found, rather than crashing. This behavior is optional because
updating and checking this table significantly decreases the performance
of the engine. Currently, the hash table is disabled by default when
Spotfire Enterprise Runtime for R starts.
The
setCheckSEXP function is used to enable or disable this table
of SEXP values.
- If value is set to TRUE, the hash table is enabled.
- If value is set to FALSE, the hash table is disabled.
- If value is set to NA, the current state is returned.
Value
returns the previous value of the SEXP check table flag: either TRUE
or FALSE. If value is NA, the existing value is
returned without changing anything.
See Also
Examples
## return whether SEXP values are checked
terrUtils::setCheckSEXP(NA)