add %typemap(varin) SWIGTYPE[], fix some typemaps to be safe for %apply
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6423 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
5a4369fd11
commit
9d9580639a
5 changed files with 27 additions and 12 deletions
|
|
@ -207,14 +207,14 @@
|
|||
|
||||
%typemap(out) const long long & {
|
||||
char temp[256];
|
||||
sprintf(temp,"%lld", *($1));
|
||||
sprintf(temp,"%lld", (long long)*($1));
|
||||
ST(argvi) = sv_newmortal();
|
||||
sv_setpv((SV*)ST(argvi++), temp);
|
||||
}
|
||||
|
||||
%typemap(out) const unsigned long long & {
|
||||
char temp[256];
|
||||
sprintf(temp,"%llu", *($1));
|
||||
sprintf(temp,"%llu", (unsigned long long)*($1));
|
||||
ST(argvi) = sv_newmortal();
|
||||
sv_setpv((SV*)ST(argvi++), temp);
|
||||
}
|
||||
|
|
@ -242,9 +242,11 @@
|
|||
%typemap(varin) unsigned long long "$1 = ($1_ltype) strtoull(SvPV($input, PL_na), 0, 0);";
|
||||
|
||||
%typemap(varin) SWIGTYPE * {
|
||||
void *temp;
|
||||
if (SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor,0) < 0) {
|
||||
croak("Type error in argument $argnum of $symname. Expected $1_mangle");
|
||||
}
|
||||
$1 = *($1_ltype) temp;
|
||||
}
|
||||
|
||||
%typemap(varin) SWIGTYPE [ANY] {
|
||||
|
|
@ -257,6 +259,11 @@
|
|||
for (i = 0; i < $1_size; i++) b[i] = temp[i];
|
||||
}
|
||||
|
||||
%typemap(varin,warning="462:Unable to set dimensionless array variable") SWIGTYPE []
|
||||
{
|
||||
croak("C/C++ variable '$name' is read-only");
|
||||
}
|
||||
|
||||
%typemap(varin) SWIGTYPE & {
|
||||
void *temp;
|
||||
if (SWIG_ConvertPtr($input, (void **) &temp, $1_descriptor,0) < 0) {
|
||||
|
|
@ -385,13 +392,13 @@
|
|||
|
||||
%typemap(varout) long long {
|
||||
char temp[256];
|
||||
sprintf(temp,"%lld",$1);
|
||||
sprintf(temp,"%lld",(long long)$1);
|
||||
sv_setpv((SV *) $result, temp);
|
||||
}
|
||||
|
||||
%typemap(varout) unsigned long long {
|
||||
char temp[256];
|
||||
sprintf(temp,"%llu",$1);
|
||||
sprintf(temp,"%llu",(unsigned long long)$1);
|
||||
sv_setpv((SV *) $result, temp);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ output values.
|
|||
if (argvi >= items) {
|
||||
EXTEND(sp,1);
|
||||
}
|
||||
sprintf(temp,"%lld", *($1));
|
||||
sprintf(temp,"%lld", (long long)*($1));
|
||||
$result = sv_newmortal();
|
||||
sv_setpv($result,temp);
|
||||
argvi++;
|
||||
|
|
@ -217,7 +217,7 @@ output values.
|
|||
if (argvi >= items) {
|
||||
EXTEND(sp,1);
|
||||
}
|
||||
sprintf(temp,"%llu", *($1));
|
||||
sprintf(temp,"%llu", (unsigned long long)*($1));
|
||||
$result = sv_newmortal();
|
||||
sv_setpv($result,temp);
|
||||
argvi++;
|
||||
|
|
|
|||
|
|
@ -64,6 +64,10 @@
|
|||
for (ii = 0; ii < $1_size; ii++) b[ii] = *(($1_basetype *) temp + ii);
|
||||
}
|
||||
|
||||
%typemap(varin,warning="462: Unable to set dimensionless array variable") SWIGTYPE [] {
|
||||
rb_raise(rb_eTypeError, "C/C++ variable '$name' is readonly");
|
||||
}
|
||||
|
||||
/* Typemaps for pointers. Note: the SWIG run-time type checker works
|
||||
even if a pointer happens to be mapped to a Ruby class */
|
||||
|
||||
|
|
|
|||
|
|
@ -236,14 +236,14 @@
|
|||
|
||||
%typemap(out) const long long & {
|
||||
char temp[256];
|
||||
sprintf(temp,"%lld", *($1));
|
||||
sprintf(temp,"%lld", (long long)*($1));
|
||||
Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
|
||||
}
|
||||
|
||||
%typemap(out) const unsigned long long &
|
||||
{
|
||||
char temp[256];
|
||||
sprintf(temp,"%llu", *($1));
|
||||
sprintf(temp,"%llu", (unsigned long long)*($1));
|
||||
Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
|
||||
}
|
||||
|
||||
|
|
@ -258,13 +258,13 @@
|
|||
|
||||
%typemap(varout) long long {
|
||||
char temp[256];
|
||||
sprintf(temp,"%lld", $1);
|
||||
sprintf(temp,"%lld", (long long)$1);
|
||||
$result = Tcl_NewStringObj(temp,-1);
|
||||
}
|
||||
|
||||
%typemap(varout) unsigned long long {
|
||||
char temp[256];
|
||||
sprintf(temp,"%llu", $1);
|
||||
sprintf(temp,"%llu", (unsigned long long)$1);
|
||||
$result = Tcl_NewStringObj(temp,-1);
|
||||
}
|
||||
|
||||
|
|
@ -381,6 +381,10 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(varin,warning="462: Unable to set dimensionless array variable") SWIGTYPE [] {
|
||||
return (char*)"Variable $symname is read-only.";
|
||||
}
|
||||
|
||||
%typemap(varin) void * {
|
||||
void *temp;
|
||||
if (SWIG_ConvertPtr($input,&temp,0, SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN) != TCL_OK) {
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@ output values.
|
|||
{
|
||||
char temp[256];
|
||||
Tcl_Obj *o;
|
||||
sprintf(temp,"%lld",*($1));
|
||||
sprintf(temp,"%lld",(long long)*($1));
|
||||
o = Tcl_NewStringObj(temp,-1);
|
||||
Tcl_ListObjAppendElement(interp,Tcl_GetObjResult(interp),o);
|
||||
}
|
||||
|
|
@ -283,7 +283,7 @@ output values.
|
|||
{
|
||||
char temp[256];
|
||||
Tcl_Obj *o;
|
||||
sprintf(temp,"%llu",*($1));
|
||||
sprintf(temp,"%llu",(unsigned long long)*($1));
|
||||
o = Tcl_NewStringObj(temp,-1);
|
||||
Tcl_ListObjAppendElement(interp,Tcl_GetObjResult(interp),o);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue