Adjust typemaps.i for change in handling of reference to slice.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13856 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Ian Lance Taylor 2012-10-02 14:53:13 +00:00
commit 5e30ec58e8

View file

@ -62,12 +62,9 @@ char * typemaps instead:
%define INPUT_TYPEMAP(TYPE, GOTYPE) %define INPUT_TYPEMAP(TYPE, GOTYPE)
%typemap(gotype) TYPE *INPUT, TYPE &INPUT "GOTYPE" %typemap(gotype) TYPE *INPUT, TYPE &INPUT "GOTYPE"
%typemap(in) TYPE *INPUT %typemap(in) TYPE *INPUT, TYPE &INPUT
%{ $1 = ($1_ltype)&$input; %} %{ $1 = ($1_ltype)&$input; %}
%typemap(in) TYPE &INPUT
%{ $1 = ($1_ltype)$input; %}
%typemap(out) TYPE *INPUT, TYPE &INPUT "" %typemap(out) TYPE *INPUT, TYPE &INPUT ""
%typemap(freearg) TYPE *INPUT, TYPE &INPUT "" %typemap(freearg) TYPE *INPUT, TYPE &INPUT ""
@ -160,7 +157,7 @@ char * typemaps instead:
%define OUTPUT_TYPEMAP(TYPE, GOTYPE) %define OUTPUT_TYPEMAP(TYPE, GOTYPE)
%typemap(gotype) TYPE *OUTPUT, TYPE &OUTPUT %{[]GOTYPE%} %typemap(gotype) TYPE *OUTPUT, TYPE &OUTPUT %{[]GOTYPE%}
%typemap(in) TYPE *OUTPUT($*1_ltype temp) %typemap(in) TYPE *OUTPUT($*1_ltype temp), TYPE &OUTPUT($*1_ltype temp)
{ {
if ($input.len == 0) { if ($input.len == 0) {
_swig_gopanic("array must contain at least 1 element"); _swig_gopanic("array must contain at least 1 element");
@ -168,30 +165,16 @@ char * typemaps instead:
$1 = &temp; $1 = &temp;
} }
%typemap(in) TYPE &OUTPUT($*1_ltype temp)
{
if ($input->len == 0) {
_swig_gopanic("array must contain at least 1 element");
}
$1 = &temp;
}
%typemap(out) TYPE *OUTPUT, TYPE &OUTPUT "" %typemap(out) TYPE *OUTPUT, TYPE &OUTPUT ""
%typemap(freearg) TYPE *OUTPUT, TYPE &OUTPUT "" %typemap(freearg) TYPE *OUTPUT, TYPE &OUTPUT ""
%typemap(argout) TYPE *OUTPUT %typemap(argout) TYPE *OUTPUT, TYPE &OUTPUT
{ {
TYPE* a = (TYPE *) $input.array; TYPE* a = (TYPE *) $input.array;
a[0] = temp$argnum; a[0] = temp$argnum;
} }
%typemap(argout) TYPE &OUTPUT
{
TYPE* a = (TYPE *) $input->array;
a[0] = temp$argnum;
}
%enddef %enddef
OUTPUT_TYPEMAP(bool, bool); OUTPUT_TYPEMAP(bool, bool);
@ -276,20 +259,13 @@ char * typemaps instead:
%define INOUT_TYPEMAP(TYPE, GOTYPE) %define INOUT_TYPEMAP(TYPE, GOTYPE)
%typemap(gotype) TYPE *INOUT, TYPE &INOUT %{[]GOTYPE%} %typemap(gotype) TYPE *INOUT, TYPE &INOUT %{[]GOTYPE%}
%typemap(in) TYPE *INOUT { %typemap(in) TYPE *INOUT, TYPE &INOUT {
if ($input.len == 0) { if ($input.len == 0) {
_swig_gopanic("array must contain at least 1 element"); _swig_gopanic("array must contain at least 1 element");
} }
$1 = ($1_ltype) $input.array; $1 = ($1_ltype) $input.array;
} }
%typemap(in) TYPE &INOUT {
if ($input->len == 0) {
_swig_gopanic("array must contain at least 1 element");
}
$1 = ($1_ltype) $input->array;
}
%typemap(out) TYPE *INOUT, TYPE &INOUT "" %typemap(out) TYPE *INOUT, TYPE &INOUT ""
%typemap(freearg) TYPE *INOUT, TYPE &INOUT "" %typemap(freearg) TYPE *INOUT, TYPE &INOUT ""