diff options
author | Alistair Delva <adelva@google.com> | 2024-04-10 14:15:29 -0700 |
---|---|---|
committer | Alistair Delva <adelva@google.com> | 2024-04-11 12:58:28 -0700 |
commit | d0f0f90be16c2ac553b5fa08512045273135147a (patch) | |
tree | 5d9ebb7a04807ea8a609ddd18b0162bc87530e4b /Lib/r/r.swg | |
parent | 6ffc1dbf29ba98c4d8aa71ebc9b484e973fe1030 (diff) | |
download | swig-master.tar.gz |
Update to v4.2.1HEADmastermainllvm-r522817
Change-Id: I47cef2be94299220d80265d949a95b58eee2c23b
Diffstat (limited to 'Lib/r/r.swg')
-rw-r--r-- | Lib/r/r.swg | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Lib/r/r.swg b/Lib/r/r.swg index 8cf8cdf53..c1ce37c3e 100644 --- a/Lib/r/r.swg +++ b/Lib/r/r.swg @@ -26,9 +26,13 @@ SWIGEXPORT void SWIG_init(void) { assign(name, _obj); %end_block %enddef -%define %raise(obj,type,desc) -return R_NilValue; -%enddef +%runtime %{ +SWIGINTERN void SWIG_R_Raise(SEXP obj, const char *msg) { + Rf_error(Rf_isString(obj) ? CHAR(Rf_asChar(obj)) : msg); +} +%} + +#define %raise(OBJ, TYPE, DESC) SWIG_R_Raise(OBJ, "C/C++ exception of type " TYPE); return R_NilValue %insert("sinit") "srun.swg" @@ -53,7 +57,7 @@ SWIG_InitializeModule(0); assert(all(sapply($input, class) == "$R_class")); %} -%typemap(out) void ""; +%typemap(out) void "" %typemap(in) int *, int[ANY], signed int *, signed int[ANY], |