Use FUNC_NAME rather than a bogus typemap variable for signalling
errors. Call scheme_wrong_type with a zero-based argument number. Reported by Ondrej Pacovsky, SF #902621. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5734 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
5d0752c94f
commit
f7b0956236
3 changed files with 12 additions and 12 deletions
|
|
@ -110,7 +110,7 @@ SWIG_MzScheme_MustGetPtr(Scheme_Object *s, swig_type_info *type,
|
||||||
int argc, Scheme_Object **argv) {
|
int argc, Scheme_Object **argv) {
|
||||||
void *result;
|
void *result;
|
||||||
if (SWIG_MzScheme_ConvertPtr(s, &result, type, flags)) {
|
if (SWIG_MzScheme_ConvertPtr(s, &result, type, flags)) {
|
||||||
scheme_wrong_type(func_name, type->str ? type->str : "void *", argnum, argc, argv);
|
scheme_wrong_type(func_name, type->str ? type->str : "void *", argnum - 1, argc, argv);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -273,7 +273,7 @@ namespace std {
|
||||||
(($1_type &)$1)[i] = (T)(CONVERT_FROM(o));
|
(($1_type &)$1)[i] = (T)(CONVERT_FROM(o));
|
||||||
else
|
else
|
||||||
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
||||||
$argnum, argc, argv);
|
$argnum - 1, argc, argv);
|
||||||
}
|
}
|
||||||
} else if (SCHEME_NULLP($input)) {
|
} else if (SCHEME_NULLP($input)) {
|
||||||
$1 = std::vector<T >();
|
$1 = std::vector<T >();
|
||||||
|
|
@ -288,7 +288,7 @@ namespace std {
|
||||||
$1.push_back((T)(CONVERT_FROM(head)));
|
$1.push_back((T)(CONVERT_FROM(head)));
|
||||||
else
|
else
|
||||||
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
||||||
$argnum, argc, argv);
|
$argnum - 1, argc, argv);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$1 = *(($&1_type)
|
$1 = *(($&1_type)
|
||||||
|
|
@ -308,7 +308,7 @@ namespace std {
|
||||||
temp[i] = (T)(CONVERT_FROM(o));
|
temp[i] = (T)(CONVERT_FROM(o));
|
||||||
else
|
else
|
||||||
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
||||||
$argnum, argc, argv);
|
$argnum - 1, argc, argv);
|
||||||
}
|
}
|
||||||
} else if (SCHEME_NULLP($input)) {
|
} else if (SCHEME_NULLP($input)) {
|
||||||
temp = std::vector<T >();
|
temp = std::vector<T >();
|
||||||
|
|
@ -325,10 +325,10 @@ namespace std {
|
||||||
temp.push_back((T)(CONVERT_FROM(head)));
|
temp.push_back((T)(CONVERT_FROM(head)));
|
||||||
else
|
else
|
||||||
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
scheme_wrong_type(FUNC_NAME, "vector<" #T ">",
|
||||||
$argnum, argc, argv);
|
$argnum - 1, argc, argv);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
|
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum - 1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%typemap(out) vector<T> {
|
%typemap(out) vector<T> {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* typemaps.i --- mzscheme typemaps -*- c -*-
|
/* typemaps.i --- mzscheme typemaps -*- c -*-
|
||||||
Copyright 2000, 2001 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
|
Copyright 2000, 2001, 2004 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
|
||||||
Based on code written by Oleg Tolmatcev.
|
Based on code written by Oleg Tolmatcev.
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
|
|
@ -90,13 +90,13 @@
|
||||||
/* Enums */
|
/* Enums */
|
||||||
%typemap(in) enum SWIGTYPE {
|
%typemap(in) enum SWIGTYPE {
|
||||||
if (!SCHEME_INTP($input))
|
if (!SCHEME_INTP($input))
|
||||||
scheme_wrong_type("$name", "integer", $argnum, argc, argv);
|
scheme_wrong_type(FUNC_NAME, "integer", $argnum - 1, argc, argv);
|
||||||
$1 = SCHEME_INT_VAL($input);
|
$1 = SCHEME_INT_VAL($input);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin) enum SWIGTYPE {
|
%typemap(varin) enum SWIGTYPE {
|
||||||
if (!SCHEME_INTP($input))
|
if (!SCHEME_INTP($input))
|
||||||
scheme_wrong_type("$name", "integer", 1, argc, argv);
|
scheme_wrong_type(FUNC_NAME, "integer", 0, argc, argv);
|
||||||
$1 = ($1_type) SCHEME_INT_VAL($input);
|
$1 = ($1_type) SCHEME_INT_VAL($input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,12 +156,12 @@
|
||||||
%define SIMPLE_MAP(C_NAME, MZ_PREDICATE, MZ_TO_C, C_TO_MZ, MZ_NAME)
|
%define SIMPLE_MAP(C_NAME, MZ_PREDICATE, MZ_TO_C, C_TO_MZ, MZ_NAME)
|
||||||
%typemap(in) C_NAME {
|
%typemap(in) C_NAME {
|
||||||
if (!MZ_PREDICATE($input))
|
if (!MZ_PREDICATE($input))
|
||||||
scheme_wrong_type("$name", #MZ_NAME, $argnum, argc, argv);
|
scheme_wrong_type(FUNC_NAME, #MZ_NAME, $argnum - 1, argc, argv);
|
||||||
$1 = MZ_TO_C($input);
|
$1 = MZ_TO_C($input);
|
||||||
}
|
}
|
||||||
%typemap(varin) C_NAME {
|
%typemap(varin) C_NAME {
|
||||||
if (!MZ_PREDICATE($input))
|
if (!MZ_PREDICATE($input))
|
||||||
scheme_wrong_type("$name", #MZ_NAME, 1, argc, argv);
|
scheme_wrong_type(FUNC_NAME, #MZ_NAME, 0, argc, argv);
|
||||||
$1 = MZ_TO_C($input);
|
$1 = MZ_TO_C($input);
|
||||||
}
|
}
|
||||||
%typemap(out) C_NAME {
|
%typemap(out) C_NAME {
|
||||||
|
|
@ -225,7 +225,7 @@ SIMPLE_MAP(const char *, SCHEME_STRINGP, SCHEME_STR_VAL,
|
||||||
%define REF_MAP(C_NAME, MZ_PREDICATE, MZ_TO_C, C_TO_MZ, MZ_NAME)
|
%define REF_MAP(C_NAME, MZ_PREDICATE, MZ_TO_C, C_TO_MZ, MZ_NAME)
|
||||||
%typemap(in) const C_NAME & (C_NAME temp) {
|
%typemap(in) const C_NAME & (C_NAME temp) {
|
||||||
if (!MZ_PREDICATE($input))
|
if (!MZ_PREDICATE($input))
|
||||||
scheme_wrong_type("$name", #MZ_NAME, $argnum, argc, argv);
|
scheme_wrong_type(FUNC_NAME, #MZ_NAME, $argnum - 1, argc, argv);
|
||||||
temp = MZ_TO_C($input);
|
temp = MZ_TO_C($input);
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue