long long typemap mods for use with %apply
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4443 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
0baec2d437
commit
af3ec605e9
8 changed files with 41 additions and 41 deletions
|
|
@ -269,7 +269,7 @@
|
||||||
const unsigned int & (unsigned int temp),
|
const unsigned int & (unsigned int temp),
|
||||||
const long & (long temp),
|
const long & (long temp),
|
||||||
const unsigned long & (unsigned long temp),
|
const unsigned long & (unsigned long temp),
|
||||||
const long long & (long long temp),
|
const long long & ($*1_ltype temp),
|
||||||
const float & (float temp),
|
const float & (float temp),
|
||||||
const double & (double temp)
|
const double & (double temp)
|
||||||
%{ temp = ($*1_ltype)$input;
|
%{ temp = ($*1_ltype)$input;
|
||||||
|
|
@ -291,7 +291,7 @@ $1 = &temp; %}
|
||||||
|
|
||||||
/* const unsigned long long & */
|
/* const unsigned long long & */
|
||||||
/* Similar to unsigned long long */
|
/* Similar to unsigned long long */
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp) {
|
%typemap(in) const unsigned long long & ($*1_ltype temp) {
|
||||||
jclass clazz;
|
jclass clazz;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
jbyteArray ba;
|
jbyteArray ba;
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@
|
||||||
const unsigned int & (unsigned int temp),
|
const unsigned int & (unsigned int temp),
|
||||||
const long & (long temp),
|
const long & (long temp),
|
||||||
const unsigned long & (unsigned long temp),
|
const unsigned long & (unsigned long temp),
|
||||||
const long long & (long long temp),
|
const long long & ($*1_ltype temp),
|
||||||
const float & (float temp),
|
const float & (float temp),
|
||||||
const double & (double temp)
|
const double & (double temp)
|
||||||
%{ temp = ($*1_ltype)$input;
|
%{ temp = ($*1_ltype)$input;
|
||||||
|
|
@ -293,7 +293,7 @@
|
||||||
|
|
||||||
/* const unsigned long long & */
|
/* const unsigned long long & */
|
||||||
/* Similar to unsigned long long */
|
/* Similar to unsigned long long */
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp) {
|
%typemap(in) const unsigned long long & ($*1_ltype temp) {
|
||||||
jclass clazz;
|
jclass clazz;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
jbyteArray ba;
|
jbyteArray ba;
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ INPUT_TYPEMAP(double, jdouble, double);
|
||||||
|
|
||||||
/* Convert from BigInteger using the toByteArray member function */
|
/* Convert from BigInteger using the toByteArray member function */
|
||||||
/* Overrides the typemap in the INPUT_TYPEMAP macro */
|
/* Overrides the typemap in the INPUT_TYPEMAP macro */
|
||||||
%typemap(in) unsigned long long *INPUT($*1_type temp), unsigned long long &INPUT(unsigned long long temp) {
|
%typemap(in) unsigned long long *INPUT($*1_ltype temp), unsigned long long &INPUT($*1_ltype temp) {
|
||||||
jclass clazz;
|
jclass clazz;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
jbyteArray ba;
|
jbyteArray ba;
|
||||||
|
|
@ -192,7 +192,7 @@ value in the single element array. In Java you would use it like this:
|
||||||
%typemap(jstype) CTYPE &OUTPUT "JTYPE[]"
|
%typemap(jstype) CTYPE &OUTPUT "JTYPE[]"
|
||||||
%typemap(javain) CTYPE &OUTPUT "$javainput"
|
%typemap(javain) CTYPE &OUTPUT "$javainput"
|
||||||
|
|
||||||
%typemap(in) CTYPE *OUTPUT($*1_type temp), CTYPE &OUTPUT(CTYPE temp)
|
%typemap(in) CTYPE *OUTPUT($*1_ltype temp), CTYPE &OUTPUT($*1_ltype temp)
|
||||||
{
|
{
|
||||||
if (!$input) {
|
if (!$input) {
|
||||||
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
||||||
|
|
@ -351,7 +351,7 @@ INOUT_TYPEMAP(double, jdouble, double, Double, jdoubleArray);
|
||||||
#undef INOUT_TYPEMAP
|
#undef INOUT_TYPEMAP
|
||||||
|
|
||||||
/* Override the typemap in the INOUT_TYPEMAP macro */
|
/* Override the typemap in the INOUT_TYPEMAP macro */
|
||||||
%typemap(in) unsigned long long *INOUT ($*1_type temp), unsigned long long &INOUT (unsigned long long temp) {
|
%typemap(in) unsigned long long *INOUT ($*1_ltype temp), unsigned long long &INOUT ($*1_ltype temp) {
|
||||||
jobject bigint;
|
jobject bigint;
|
||||||
jclass clazz;
|
jclass clazz;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@
|
||||||
%typemap(in) float, double
|
%typemap(in) float, double
|
||||||
"$1 = ($1_ltype) SvNV($input);\n";
|
"$1 = ($1_ltype) SvNV($input);\n";
|
||||||
|
|
||||||
%typemap(in) long long "$1 = (long long) strtoll(SvPV($input, PL_na), 0, 0);";
|
%typemap(in) long long "$1 = ($1_ltype) strtoll(SvPV($input, PL_na), 0, 0);";
|
||||||
%typemap(in) unsigned long long "$1 = (unsigned long long) strtoull(SvPV($input, PL_na), 0, 0);";
|
%typemap(in) unsigned long long "$1 = ($1_ltype) strtoull(SvPV($input, PL_na), 0, 0);";
|
||||||
|
|
||||||
%typemap(in) char *
|
%typemap(in) char *
|
||||||
"if (!SvOK((SV*) $input)) $1 = 0;
|
"if (!SvOK((SV*) $input)) $1 = 0;
|
||||||
|
|
@ -76,12 +76,12 @@
|
||||||
"temp = ($*1_ltype) SvNV($input);
|
"temp = ($*1_ltype) SvNV($input);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const long long & (long long temp)
|
%typemap(in) const long long & ($*1_ltype temp)
|
||||||
"temp = (long long) strtoll(SvPV($input,PL_na),0,0);
|
"temp = ($*1_ltype) strtoll(SvPV($input,PL_na),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp)
|
%typemap(in) const unsigned long long & ($*1_ltype temp)
|
||||||
"temp = (unsigned long long) strtoull(SvPV($input, PL_na),0,0);
|
"temp = ($*1_ltype) strtoull(SvPV($input, PL_na),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const char &(char temp) {
|
%typemap(in) const char &(char temp) {
|
||||||
|
|
@ -223,8 +223,8 @@
|
||||||
%typemap(varin) float, double
|
%typemap(varin) float, double
|
||||||
"$1 = ($1_ltype) SvNV($input);\n";
|
"$1 = ($1_ltype) SvNV($input);\n";
|
||||||
|
|
||||||
%typemap(varin) long long "$1 = (long long) strtoll(SvPV($input, PL_na), 0, 0);";
|
%typemap(varin) long long "$1 = ($1_ltype) strtoll(SvPV($input, PL_na), 0, 0);";
|
||||||
%typemap(varin) unsigned long long "$1 = (unsigned long long) strtoull(SvPV($input, PL_na), 0, 0);";
|
%typemap(varin) unsigned long long "$1 = ($1_ltype) strtoull(SvPV($input, PL_na), 0, 0);";
|
||||||
|
|
||||||
%typemap(varin) SWIGTYPE *, SWIGTYPE [] {
|
%typemap(varin) SWIGTYPE *, SWIGTYPE [] {
|
||||||
if (SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor,0) < 0) {
|
if (SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor,0) < 0) {
|
||||||
|
|
@ -277,12 +277,12 @@
|
||||||
"temp = ($*1_ltype) SvNV($input);
|
"temp = ($*1_ltype) SvNV($input);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(varin) const long long & (long long temp)
|
%typemap(varin) const long long & ($*1_ltype temp)
|
||||||
"temp = (long long) strtoll(SvPV($input,PL_na),0,0);
|
"temp = ($1_ltype) strtoll(SvPV($input,PL_na),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(varin) const unsigned long long & (unsigned long long temp)
|
%typemap(varin) const unsigned long long & ($*1_ltype temp)
|
||||||
"temp = (unsigned long long) strtoull(SvPV($input, PL_na),0,0);
|
"temp = ($1_ltype) strtoull(SvPV($input, PL_na),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(varin) const char &(char temp) {
|
%typemap(varin) const char &(char temp) {
|
||||||
|
|
|
||||||
|
|
@ -156,12 +156,12 @@ OUTV_TYPEMAP(char *, PyString_AsString);
|
||||||
if (PyErr_Occurred()) SWIG_fail;";
|
if (PyErr_Occurred()) SWIG_fail;";
|
||||||
|
|
||||||
%typemap(in) long long
|
%typemap(in) long long
|
||||||
"$1 = (long long) PyLong_AsLongLong($input);
|
"$1 = ($1_ltype) PyLong_AsLongLong($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;";
|
if (PyErr_Occurred()) SWIG_fail;";
|
||||||
|
|
||||||
|
|
||||||
%typemap(in) unsigned long long
|
%typemap(in) unsigned long long
|
||||||
"$1 = (unsigned long long) PyLong_AsUnsignedLongLong($input);
|
"$1 = ($1_ltype) PyLong_AsUnsignedLongLong($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;";
|
if (PyErr_Occurred()) SWIG_fail;";
|
||||||
|
|
||||||
%typemap(in,parse="f") float "";
|
%typemap(in,parse="f") float "";
|
||||||
|
|
@ -221,13 +221,13 @@ OUTV_TYPEMAP(char *, PyString_AsString);
|
||||||
if (PyErr_Occurred()) SWIG_fail;
|
if (PyErr_Occurred()) SWIG_fail;
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const long long & (long long temp)
|
%typemap(in) const long long & ($*1_ltype temp)
|
||||||
"temp = (long long) PyLong_AsLongLong($input);
|
"temp = ($*1_ltype) PyLong_AsLongLong($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;
|
if (PyErr_Occurred()) SWIG_fail;
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp)
|
%typemap(in) const unsigned long long & ($*1_ltype temp)
|
||||||
"temp = (unsigned long long) PyLong_AsUnsignedLongLong($input);
|
"temp = ($*1_ltype) PyLong_AsUnsignedLongLong($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;
|
if (PyErr_Occurred()) SWIG_fail;
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
|
|
@ -333,7 +333,7 @@ OUTV_TYPEMAP(char *, PyString_AsString);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin) long long {
|
%typemap(varin) long long {
|
||||||
long long temp = PyLong_AsLongLong($input);
|
$1_type temp = PyLong_AsLongLong($input);
|
||||||
if (PyErr_Occurred()) {
|
if (PyErr_Occurred()) {
|
||||||
PyErr_SetString(PyExc_TypeError, "C variable '$name ($1_ltype)'");
|
PyErr_SetString(PyExc_TypeError, "C variable '$name ($1_ltype)'");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -342,7 +342,7 @@ OUTV_TYPEMAP(char *, PyString_AsString);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin) unsigned long long {
|
%typemap(varin) unsigned long long {
|
||||||
unsigned long long temp = PyLong_AsUnsignedLongLong($input);
|
$1_type temp = PyLong_AsUnsignedLongLong($input);
|
||||||
if (PyErr_Occurred()) {
|
if (PyErr_Occurred()) {
|
||||||
PyErr_SetString(PyExc_TypeError, "C variable '$name ($1_ltype)'");
|
PyErr_SetString(PyExc_TypeError, "C variable '$name ($1_ltype)'");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ or you can use the %apply directive :
|
||||||
*/
|
*/
|
||||||
|
|
||||||
%define INPUT_TYPEMAP(type, converter)
|
%define INPUT_TYPEMAP(type, converter)
|
||||||
%typemap(in) type *INPUT(type temp), type &INPUT(type temp)
|
%typemap(in) type *INPUT($*1_ltype temp), type &INPUT($*1_ltype temp)
|
||||||
{
|
{
|
||||||
temp = converter($input);
|
temp = converter($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;
|
if (PyErr_Occurred()) SWIG_fail;
|
||||||
|
|
@ -153,7 +153,7 @@ output values.
|
||||||
%include "fragments.i"
|
%include "fragments.i"
|
||||||
|
|
||||||
%define OUTPUT_TYPEMAP(type, converter, convtype)
|
%define OUTPUT_TYPEMAP(type, converter, convtype)
|
||||||
%typemap(in,numinputs=0) type *OUTPUT(type temp), type &OUTPUT(type temp) "$1 = &temp;";
|
%typemap(in,numinputs=0) type *OUTPUT($*1_ltype temp), type &OUTPUT($*1_ltype temp) "$1 = &temp;";
|
||||||
%typemap(argout,fragment="t_output_helper") type *OUTPUT, type &OUTPUT {
|
%typemap(argout,fragment="t_output_helper") type *OUTPUT, type &OUTPUT {
|
||||||
PyObject *o = converter(convtype (*$1));
|
PyObject *o = converter(convtype (*$1));
|
||||||
$result = t_output_helper($result,o);
|
$result = t_output_helper($result,o);
|
||||||
|
|
@ -163,11 +163,11 @@ output values.
|
||||||
OUTPUT_TYPEMAP(int, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(int, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(short, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(short, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(long, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(long, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(long long, PyLong_FromLongLong, (long long));
|
OUTPUT_TYPEMAP(long long, PyLong_FromLongLong, ($*1_ltype));
|
||||||
OUTPUT_TYPEMAP(unsigned int, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(unsigned int, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(unsigned short, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(unsigned short, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(unsigned long, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(unsigned long, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(unsigned long long, PyLong_FromUnsignedLongLong, (unsigned long long));
|
OUTPUT_TYPEMAP(unsigned long long, PyLong_FromUnsignedLongLong, ($*1_ltype));
|
||||||
OUTPUT_TYPEMAP(unsigned char, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(unsigned char, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(signed char, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(signed char, PyInt_FromLong, (long));
|
||||||
OUTPUT_TYPEMAP(bool, PyInt_FromLong, (long));
|
OUTPUT_TYPEMAP(bool, PyInt_FromLong, (long));
|
||||||
|
|
|
||||||
|
|
@ -107,11 +107,11 @@
|
||||||
"temp = ($*1_ltype) NUM2DBL($input);
|
"temp = ($*1_ltype) NUM2DBL($input);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const long long & (long long temp)
|
%typemap(in) const long long & ($*1_ltype temp)
|
||||||
"temp = ($*1_ltype) NUM2LL($input);
|
"temp = ($*1_ltype) NUM2LL($input);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp)
|
%typemap(in) const unsigned long long & ($*1_ltype temp)
|
||||||
"temp = ($*1_ltype) NUM2ULL($input);
|
"temp = ($*1_ltype) NUM2ULL($input);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,8 @@
|
||||||
/* These will pass an integer as an unsigned long. However, the implementation is crippled due
|
/* These will pass an integer as an unsigned long. However, the implementation is crippled due
|
||||||
to limited precision in Tcl */
|
to limited precision in Tcl */
|
||||||
|
|
||||||
%typemap(in) long long "$1 = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
|
%typemap(in) long long "$1 = ($1_ltype) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
|
||||||
%typemap(in) unsigned long long "$1 = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL), 0, 0);";
|
%typemap(in) unsigned long long "$1 = ($1_ltype) strtoull(Tcl_GetStringFromObj($input,NULL), 0, 0);";
|
||||||
|
|
||||||
/* Enum parsing. Note: internally SWIG converts enums to/from integers so it's okay to use
|
/* Enum parsing. Note: internally SWIG converts enums to/from integers so it's okay to use
|
||||||
the "i" parse code here */
|
the "i" parse code here */
|
||||||
|
|
@ -115,12 +115,12 @@
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) const long long & (long long temp)
|
%typemap(in) const long long & ($*1_ltype temp)
|
||||||
"temp = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);
|
"temp = ($*1_ltype) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const unsigned long long & (unsigned long long temp)
|
%typemap(in) const unsigned long long & ($*1_ltype temp)
|
||||||
"temp = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);
|
"temp = ($*1_ltype) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);
|
||||||
$1 = &temp;";
|
$1 = &temp;";
|
||||||
|
|
||||||
%typemap(in) const char &(char temp) {
|
%typemap(in) const char &(char temp) {
|
||||||
|
|
@ -298,8 +298,8 @@
|
||||||
$1 = temp ? true : false;
|
$1 = temp ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin) long long "$1 = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
|
%typemap(varin) long long "$1 = ($1_ltype) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
|
||||||
%typemap(varin) unsigned long long "$1 = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);";
|
%typemap(varin) unsigned long long "$1 = ($1_ltype) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);";
|
||||||
|
|
||||||
%typemap(varin) double, float {
|
%typemap(varin) double, float {
|
||||||
double temp;
|
double temp;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue