add %typemap(varin) SWIGTYPE[], fix some typemaps to be safe for %apply

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6423 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-10-18 00:38:44 +00:00
commit aa85fa1a1e
5 changed files with 27 additions and 12 deletions

View file

@ -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);
}

View file

@ -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++;