summaryrefslogtreecommitdiff
path: root/Lib/mzscheme
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2013-01-24 19:48:56 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2013-01-24 20:27:28 +0000
commit9bd2fb2cad41246c5e124a3ea4738f045759370f (patch)
tree632fa02d1997b9570808c36c0dea62136bb9f0c5 /Lib/mzscheme
parent0734fa050de474ee4c90908c58be387c4b59e544 (diff)
downloadswig-9bd2fb2cad41246c5e124a3ea4738f045759370f.tar.gz
Add rvalue reference typemaps
Diffstat (limited to 'Lib/mzscheme')
-rw-r--r--Lib/mzscheme/typemaps.i15
1 files changed, 12 insertions, 3 deletions
diff --git a/Lib/mzscheme/typemaps.i b/Lib/mzscheme/typemaps.i
index f12513df8..026ec9567 100644
--- a/Lib/mzscheme/typemaps.i
+++ b/Lib/mzscheme/typemaps.i
@@ -23,6 +23,10 @@
$1 = *(($1_ltype)SWIG_MustGetPtr($input, $descriptor, 1, 0));
}
+%typemap(varin) SWIGTYPE && {
+ $1 = *(($1_ltype)SWIG_MustGetPtr($input, $descriptor, 1, 0));
+}
+
%typemap(varin) SWIGTYPE [ANY] {
void *temp;
int ii;
@@ -54,16 +58,20 @@
$result = SWIG_NewPointerObj((void *) &$1, $1_descriptor, 0);
}
+%typemap(varout) SWIGTYPE && {
+ $result = SWIG_NewPointerObj((void *) &$1, $1_descriptor, 0);
+}
+
/* C++ References */
#ifdef __cplusplus
-%typemap(in) SWIGTYPE &, const SWIGTYPE & {
+%typemap(in) SWIGTYPE &, SWIGTYPE && {
$1 = ($ltype) SWIG_MustGetPtr($input, $descriptor, $argnum, 0);
if ($1 == NULL) scheme_signal_error("swig-type-error (null reference)");
}
-%typemap(out) SWIGTYPE &, const SWIGTYPE & {
+%typemap(out) SWIGTYPE &, SWIGTYPE && {
$result = SWIG_NewPointerObj ($1, $descriptor, $owner);
}
@@ -321,7 +329,7 @@ REF_MAP(double, SCHEME_REALP, scheme_real_to_double,
$1 = (SCHEME_STRINGP($input)) ? 1 : 0;
}
-%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] {
+%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [] {
void *ptr;
if (SWIG_ConvertPtr($input, (void **) &ptr, $1_descriptor, 0)) {
$1 = 0;
@@ -351,6 +359,7 @@ REF_MAP(double, SCHEME_REALP, scheme_real_to_double,
/* Array reference typemaps */
%apply SWIGTYPE & { SWIGTYPE ((&)[ANY]) }
+%apply SWIGTYPE && { SWIGTYPE ((&&)[ANY]) }
/* const pointers */
%apply SWIGTYPE * { SWIGTYPE *const }