diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/r/rtype.swg | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Lib/r/rtype.swg b/Lib/r/rtype.swg index 41f0affe1..a9c067589 100644 --- a/Lib/r/rtype.swg +++ b/Lib/r/rtype.swg @@ -14,12 +14,13 @@ %typemap("rtype") bool, bool * "logical" %typemap("rtype") enum SWIGTYPE "character" %typemap("rtype") enum SWIGTYPE * "character" -%typemap("rtype") enum SWIGTYPE *const "character" +%typemap("rtype") enum SWIGTYPE *const& "character" %typemap("rtype") enum SWIGTYPE & "character" %typemap("rtype") const enum SWIGTYPE & "character" %typemap("rtype") enum SWIGTYPE && "character" %typemap("rtype") SWIGTYPE * "$R_class" %typemap("rtype") SWIGTYPE *const "$R_class" +%typemap("rtype") SWIGTYPE *const& "$*R_class" %typemap("rtype") SWIGTYPE & "$R_class" %typemap("rtype") SWIGTYPE && "$R_class" %typemap("rtype") SWIGTYPE "$&R_class" @@ -93,7 +94,7 @@ %typemap(scoercein) enum SWIGTYPE *const %{ $input = enumToInteger($input, "$R_class"); %} -%typemap(scoercein) SWIGTYPE, SWIGTYPE *, SWIGTYPE *const, SWIGTYPE &, SWIGTYPE && +%typemap(scoercein) SWIGTYPE, SWIGTYPE *, SWIGTYPE *const, SWIGTYPE *const&, SWIGTYPE &, SWIGTYPE && %{ if (inherits($input, "ExternalReference")) $input = slot($input,"ref"); %} /* @@ -172,6 +173,10 @@ string &, std::string & %{ $result <- if (is.null($result)) $result else new("$R_class", ref=$result); %} +%typemap(scoerceout) SWIGTYPE *const& + %{ $result <- if (is.null($result)) $result + else new("$*R_class", ref=$result); %} + /* Override the SWIGTYPE * above. */ %typemap(scoerceout) char, |