[PHP] Add typemaps for long long and unsigned long long.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11766 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
52bdfa3097
commit
d6984c5253
3 changed files with 31 additions and 6 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
Version 1.3.41 (in progress)
|
Version 1.3.41 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
2009-12-03: olly
|
||||||
|
[PHP] Add typemaps for long long and unsigned long long.
|
||||||
|
|
||||||
2009-12-02: olly
|
2009-12-02: olly
|
||||||
[PHP] Fix warning and rename of reserved class name to be case insensitive.
|
[PHP] Fix warning and rename of reserved class name to be case insensitive.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -361,6 +361,8 @@
|
||||||
%php_typecheck(unsigned short,SWIG_TYPECHECK_UINT16,IS_LONG)
|
%php_typecheck(unsigned short,SWIG_TYPECHECK_UINT16,IS_LONG)
|
||||||
%php_typecheck(long,SWIG_TYPECHECK_INT64,IS_LONG)
|
%php_typecheck(long,SWIG_TYPECHECK_INT64,IS_LONG)
|
||||||
%php_typecheck(unsigned long,SWIG_TYPECHECK_UINT64,IS_LONG)
|
%php_typecheck(unsigned long,SWIG_TYPECHECK_UINT64,IS_LONG)
|
||||||
|
%php_typecheck(long long,SWIG_TYPECHECK_INT64,IS_LONG)
|
||||||
|
%php_typecheck(unsigned long long,SWIG_TYPECHECK_UINT64,IS_LONG)
|
||||||
%php_typecheck(signed char,SWIG_TYPECHECK_INT8,IS_LONG)
|
%php_typecheck(signed char,SWIG_TYPECHECK_INT8,IS_LONG)
|
||||||
%php_typecheck(unsigned char,SWIG_TYPECHECK_UINT8,IS_LONG)
|
%php_typecheck(unsigned char,SWIG_TYPECHECK_UINT8,IS_LONG)
|
||||||
%php_typecheck(size_t,SWIG_TYPECHECK_INT16,IS_LONG)
|
%php_typecheck(size_t,SWIG_TYPECHECK_INT16,IS_LONG)
|
||||||
|
|
|
||||||
|
|
@ -112,9 +112,7 @@ int_typemap(long long);
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (long long lvalue)
|
%typemap(in) TYPE *REFERENCE (long long lvalue)
|
||||||
%{
|
%{
|
||||||
// FIXME won't work for values which don't fit in a long...
|
CONVERT_LONG_LONG_IN(lvalue, long long, $input)
|
||||||
convert_to_long_ex($input);
|
|
||||||
lvalue = (long long) (*$input)->value.lval;
|
|
||||||
$1 = &lvalue;
|
$1 = &lvalue;
|
||||||
%}
|
%}
|
||||||
%typemap(argout) long long *REFERENCE
|
%typemap(argout) long long *REFERENCE
|
||||||
|
|
@ -128,6 +126,17 @@ int_typemap(long long);
|
||||||
ZVAL_STRING((*$arg), temp, 1);
|
ZVAL_STRING((*$arg), temp, 1);
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
%typemap(argout) long long &OUTPUT
|
||||||
|
%{
|
||||||
|
if ((long long)LONG_MIN <= *arg$argnum && *arg$argnum <= (long long)LONG_MAX) {
|
||||||
|
($result)->value.lval = (long)(*arg$argnum);
|
||||||
|
($result)->type = IS_LONG;
|
||||||
|
} else {
|
||||||
|
char temp[256];
|
||||||
|
sprintf(temp, "%lld", *arg$argnum);
|
||||||
|
ZVAL_STRING($result, temp, 1);
|
||||||
|
}
|
||||||
|
%}
|
||||||
int_typemap(unsigned long long);
|
int_typemap(unsigned long long);
|
||||||
%typemap(argout,fragment="t_output_helper") unsigned long long *OUTPUT
|
%typemap(argout,fragment="t_output_helper") unsigned long long *OUTPUT
|
||||||
{
|
{
|
||||||
|
|
@ -144,9 +153,7 @@ int_typemap(unsigned long long);
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (unsigned long long lvalue)
|
%typemap(in) TYPE *REFERENCE (unsigned long long lvalue)
|
||||||
%{
|
%{
|
||||||
// FIXME won't work for values which don't fit in a long...
|
CONVERT_UNSIGNED_LONG_LONG_IN(lvalue, unsigned long long, $input)
|
||||||
convert_to_long_ex($input);
|
|
||||||
lvalue = (unsigned long long) (*$input)->value.lval;
|
|
||||||
$1 = &lvalue;
|
$1 = &lvalue;
|
||||||
%}
|
%}
|
||||||
%typemap(argout) unsigned long long *REFERENCE
|
%typemap(argout) unsigned long long *REFERENCE
|
||||||
|
|
@ -160,6 +167,17 @@ int_typemap(unsigned long long);
|
||||||
ZVAL_STRING((*$arg), temp, 1);
|
ZVAL_STRING((*$arg), temp, 1);
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
%typemap(argout) unsigned long long &OUTPUT
|
||||||
|
%{
|
||||||
|
if (*arg$argnum <= (unsigned long long)LONG_MAX) {
|
||||||
|
($result)->value.lval = (long)(*arg$argnum);
|
||||||
|
($result)->type = IS_LONG;
|
||||||
|
} else {
|
||||||
|
char temp[256];
|
||||||
|
sprintf(temp, "%llu", *arg$argnum);
|
||||||
|
ZVAL_STRING($result, temp, 1);
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
%typemap(in) float *INOUT = float *INPUT;
|
%typemap(in) float *INOUT = float *INPUT;
|
||||||
%typemap(in) double *INOUT = double *INPUT;
|
%typemap(in) double *INOUT = double *INPUT;
|
||||||
|
|
@ -181,11 +199,13 @@ int_typemap(unsigned long long);
|
||||||
%typemap(in) short &INOUT = short *INPUT;
|
%typemap(in) short &INOUT = short *INPUT;
|
||||||
%typemap(in) long &INOUT = long *INPUT;
|
%typemap(in) long &INOUT = long *INPUT;
|
||||||
%typemap(in) long long &INOUT = long long *INPUT;
|
%typemap(in) long long &INOUT = long long *INPUT;
|
||||||
|
%typemap(in) long long &INPUT = long long *INPUT;
|
||||||
%typemap(in) unsigned &INOUT = unsigned *INPUT;
|
%typemap(in) unsigned &INOUT = unsigned *INPUT;
|
||||||
%typemap(in) unsigned short &INOUT = unsigned short *INPUT;
|
%typemap(in) unsigned short &INOUT = unsigned short *INPUT;
|
||||||
%typemap(in) unsigned long &INOUT = unsigned long *INPUT;
|
%typemap(in) unsigned long &INOUT = unsigned long *INPUT;
|
||||||
%typemap(in) unsigned char &INOUT = unsigned char *INPUT;
|
%typemap(in) unsigned char &INOUT = unsigned char *INPUT;
|
||||||
%typemap(in) unsigned long long &INOUT = unsigned long long *INPUT;
|
%typemap(in) unsigned long long &INOUT = unsigned long long *INPUT;
|
||||||
|
%typemap(in) unsigned long long &INPUT = unsigned long long *INPUT;
|
||||||
|
|
||||||
%typemap(argout) float *INOUT = float *OUTPUT;
|
%typemap(argout) float *INOUT = float *OUTPUT;
|
||||||
%typemap(argout) double *INOUT= double *OUTPUT;
|
%typemap(argout) double *INOUT= double *OUTPUT;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue