diff --git a/Lib/csharp/feature_interface.i b/Lib/csharp/feature_interface.i index cd1e71f49..6e7fc4805 100644 --- a/Lib/csharp/feature_interface.i +++ b/Lib/csharp/feature_interface.i @@ -1,8 +1,8 @@ %define DECLARE_INTERFACE_(CTYPE, INTERFACE, IMPL) %feature("interface", name = "INTERFACE", cptr = "GetCPtr") CTYPE; -%typemap(cstype) CTYPE, CTYPE *, CTYPE & "INTERFACE" +%typemap(cstype) CTYPE, CTYPE *, CTYPE [], CTYPE & "INTERFACE" %typemap(csin) CTYPE, CTYPE & "$csinput.GetCPtr()" -%typemap(csin) CTYPE * "$csinput == null ? new HandleRef(null, IntPtr.Zero) : $csinput.GetCPtr()" +%typemap(csin) CTYPE *, CTYPE [] "$csinput == null ? new HandleRef(null, IntPtr.Zero) : $csinput.GetCPtr()" %typemap(csout, excode=SWIGEXCODE) CTYPE { IMPL ret = new IMPL($imcall, true);$excode return (INTERFACE)ret; @@ -11,13 +11,13 @@ IMPL ret = new IMPL($imcall, $owner);$excode return (INTERFACE)ret; } -%typemap(csout, excode=SWIGEXCODE) CTYPE * { +%typemap(csout, excode=SWIGEXCODE) CTYPE *, CTYPE [] { IMPL ret = (cPtr == IntPtr.Zero) ? null : new IMPL($imcall, $owner);$excode return (INTERFACE)ret; } %typemap(csdirectorin) CTYPE, CTYPE & "(INTERFACE)new IMPL($iminput, false)" -%typemap(csdirectorin) CTYPE * "($iminput == IntPtr.Zero) ? null : (INTERFACE)new IMPL($iminput, false)" -%typemap(csdirectorout) CTYPE, CTYPE *, CTYPE & "$cscall.GetCPtr()" +%typemap(csdirectorin) CTYPE *, CTYPE [] "($iminput == IntPtr.Zero) ? null : (INTERFACE)new IMPL($iminput, false)" +%typemap(csdirectorout) CTYPE, CTYPE *, CTYPE [], CTYPE & "$cscall.GetCPtr()" %enddef %define DECLARE_INTERFACE_RENAME(CTYPE, INTERFACE, IMPL) diff --git a/Lib/java/feature_interface.i b/Lib/java/feature_interface.i index 6abbd904f..dc3418e9e 100644 --- a/Lib/java/feature_interface.i +++ b/Lib/java/feature_interface.i @@ -1,22 +1,22 @@ %define DECLARE_INTERFACE_(CTYPE, INTERFACE, IMPL) %feature("interface", name = "INTERFACE", cptr = #INTERFACE ## "_getCPtr") CTYPE; -%typemap(jtype, nopgcpp="1") CTYPE, CTYPE *, CTYPE & "long" -%typemap(jstype) CTYPE, CTYPE *, CTYPE & "INTERFACE" +%typemap(jtype, nopgcpp="1") CTYPE, CTYPE *, CTYPE [], CTYPE & "long" +%typemap(jstype) CTYPE, CTYPE *, CTYPE [], CTYPE & "INTERFACE" %typemap(javain) CTYPE, CTYPE & "$javainput." ## #INTERFACE ## "_getCPtr()" -%typemap(javain) CTYPE * "($javainput == null) ? 0 : $javainput." ## #INTERFACE ## "_getCPtr()" +%typemap(javain) CTYPE *, CTYPE [] "($javainput == null) ? 0 : $javainput." ## #INTERFACE ## "_getCPtr()" %typemap(javaout) CTYPE { return (INTERFACE)new IMPL(cPtr, true); } %typemap(javaout) CTYPE & { return (INTERFACE)new IMPL(cPtr, $owner); } -%typemap(javaout) CTYPE * { +%typemap(javaout) CTYPE *, CTYPE [] { long cPtr = $jnicall; return (cPtr == 0) ? null : (INTERFACE)new IMPL(cPtr, $owner); } %typemap(javadirectorin) CTYPE, CTYPE & "(INTERFACE)new IMPL($jniinput, false)" -%typemap(javadirectorin) CTYPE * "($jniinput == 0) ? null : (INTERFACE)new IMPL($jniinput, false)" -%typemap(javadirectorout) CTYPE, CTYPE *, CTYPE & "$javacall." ## #INTERFACE ## "_getCPtr()" +%typemap(javadirectorin) CTYPE *, CTYPE [] "($jniinput == 0) ? null : (INTERFACE)new IMPL($jniinput, false)" +%typemap(javadirectorout) CTYPE, CTYPE *, CTYPE [], CTYPE & "$javacall." ## #INTERFACE ## "_getCPtr()" SWIG_JAVABODY_PROXY(public, protected, CTYPE) %enddef