put in integer fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11059 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
88e60d75c9
commit
809bbb89e3
3 changed files with 77 additions and 11 deletions
|
|
@ -1,6 +1,9 @@
|
|||
Version 1.3.37 (30 December 2008)
|
||||
=================================
|
||||
|
||||
2009-01-12: drjoe
|
||||
Fixed handling of integer arrays
|
||||
|
||||
2009-01-10: drjoe
|
||||
Fix integer handling in r to deal correctly with signed
|
||||
and unsigned issues
|
||||
|
|
|
|||
60
Lib/r/r.swg
60
Lib/r/r.swg
|
|
@ -56,13 +56,61 @@ SWIG_InitializeModule(0);
|
|||
%typemap(out) void "";
|
||||
|
||||
%typemap(in) int *, int[ANY],
|
||||
long *, long[ANY] %{
|
||||
$1 = INTEGER($input);
|
||||
signed int *, signed int[ANY],
|
||||
unsigned int *, unsigned int[ANY],
|
||||
short *, short[ANY],
|
||||
signed short *, signed short[ANY],
|
||||
unsigned short *, unsigned short[ANY],
|
||||
long *, long[ANY],
|
||||
signed long *, signed long[ANY],
|
||||
unsigned long *, unsigned long[ANY],
|
||||
long long *, long long[ANY],
|
||||
signed long long *, signed long long[ANY],
|
||||
unsigned long long *, unsigned long long[ANY]
|
||||
|
||||
{
|
||||
{ int _rswigi;
|
||||
int _rswiglen = LENGTH($input);
|
||||
$1 = %static_cast(calloc(sizeof($1_basetype), _rswiglen), $1_ltype);
|
||||
for (_rswigi=0; _rswigi< _rswiglen; _rswigi++) {
|
||||
$1[_rswigi] = INTEGER($input)[_rswigi];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%typemap(in) float *, float[ANY],
|
||||
double *, double[ANY]
|
||||
|
||||
{
|
||||
{ int _rswigi;
|
||||
int _rswiglen = LENGTH($input);
|
||||
$1 = %static_cast(calloc(sizeof($1_basetype), _rswiglen), $1_ltype);
|
||||
for (_rswigi=0; _rswigi<_rswiglen; _rswigi++) {
|
||||
$1[_rswigi] = REAL($input)[_rswigi];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%typemap(freearg,noblock=1) int *, int[ANY],
|
||||
signed int *, signed int[ANY],
|
||||
unsigned int *, unsigned int[ANY],
|
||||
short *, short[ANY],
|
||||
signed short *, signed short[ANY],
|
||||
unsigned short *, unsigned short[ANY],
|
||||
long *, long[ANY],
|
||||
signed long *, signed long[ANY],
|
||||
unsigned long *, unsigned long[ANY],
|
||||
long long *, long long[ANY],
|
||||
signed long long *, signed long long[ANY],
|
||||
unsigned long long *, unsigned long long[ANY],
|
||||
float *, float[ANY],
|
||||
double *, double[ANY]
|
||||
%{
|
||||
free($1);
|
||||
%}
|
||||
|
||||
%typemap(in) double *, double[ANY] %{
|
||||
$1 = REAL($input);
|
||||
%}
|
||||
|
||||
|
||||
|
||||
/* Shoul dwe recycle to make the length correct.
|
||||
And warn if length() > the dimension.
|
||||
|
|
@ -92,8 +140,6 @@ SWIG_InitializeModule(0);
|
|||
%include <typemaps/swigtypemaps.swg>
|
||||
%include <rtype.swg>
|
||||
|
||||
%apply int[ANY] { enum SWIGTYPE[ANY] };
|
||||
|
||||
%typemap(in,noblock=1) enum SWIGTYPE[ANY] {
|
||||
$1 = %reinterpret_cast(INTEGER($input), $1_ltype);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
for use in class representations.
|
||||
*/
|
||||
|
||||
%typemap("rtype") int, int *, int & "numeric";
|
||||
%typemap("rtype") int, int *, int & "integer";
|
||||
%apply int {size_t}
|
||||
%apply int {std::size_t}
|
||||
%apply int {ptrdiff_t}
|
||||
|
|
@ -13,11 +13,11 @@
|
|||
%apply int {short}
|
||||
%apply int {unsigned short}
|
||||
|
||||
%typemap("rtype") long, long *, long & "numeric";
|
||||
%typemap("rtype") long, long *, long & "integer";
|
||||
%apply long {long long}
|
||||
%apply long {signed long long}
|
||||
%apply long {unsigned long long}
|
||||
%apply long {unsigned long}
|
||||
%apply long {signed long}
|
||||
%apply long {unsigned long}
|
||||
|
||||
%typemap("rtype") double, double*, double & "numeric";
|
||||
|
|
@ -143,7 +143,24 @@ string &, std::string &
|
|||
std::string,
|
||||
string &,
|
||||
std::string &,
|
||||
void
|
||||
void,
|
||||
signed int,
|
||||
signed int &,
|
||||
unsigned int,
|
||||
unsigned int &,
|
||||
short,
|
||||
short &,
|
||||
unsigned short,
|
||||
unsigned short &,
|
||||
long long,
|
||||
signed long long,
|
||||
signed long long &,
|
||||
unsigned long long,
|
||||
unsigned long long &,
|
||||
signed long,
|
||||
signed long &,
|
||||
unsigned long,
|
||||
unsigned long &
|
||||
%{ %}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue