fix for director_exception.i in ruby, ie, null ref in a 'Type' typemap is considered a TypeError
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8336 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e7859d3bbd
commit
6b5d5ae8a0
1 changed files with 8 additions and 4 deletions
|
|
@ -28,7 +28,9 @@
|
||||||
%typemap(in,fragment=frag) Type {
|
%typemap(in,fragment=frag) Type {
|
||||||
Type *ptr = (Type *)0;
|
Type *ptr = (Type *)0;
|
||||||
int res = asptr_meth($input, &ptr);
|
int res = asptr_meth($input, &ptr);
|
||||||
if (!SWIG_IsOK(res) || !ptr) { %argument_fail(res, "$type", $symname, $argnum); }
|
if (!SWIG_IsOK(res) || !ptr) {
|
||||||
|
%argument_fail((ptr ? res : SWIG_TypeError), "$type", $symname, $argnum);
|
||||||
|
}
|
||||||
$1 = *ptr;
|
$1 = *ptr;
|
||||||
if (SWIG_IsNewObj(res)) %delete(ptr);
|
if (SWIG_IsNewObj(res)) %delete(ptr);
|
||||||
}
|
}
|
||||||
|
|
@ -51,7 +53,9 @@
|
||||||
%typemap(varin,fragment=frag) Type {
|
%typemap(varin,fragment=frag) Type {
|
||||||
Type *ptr = (Type *)0;
|
Type *ptr = (Type *)0;
|
||||||
int res = asptr_meth($input, &ptr);
|
int res = asptr_meth($input, &ptr);
|
||||||
if (!SWIG_IsOK(res) || !ptr) { %variable_fail(res, "$type", "$name"); }
|
if (!SWIG_IsOK(res) || !ptr) {
|
||||||
|
%variable_fail((ptr ? res : SWIG_TypeError), "$type", "$name");
|
||||||
|
}
|
||||||
$1 = *ptr;
|
$1 = *ptr;
|
||||||
if (SWIG_IsNewObj(res)) %delete(ptr);
|
if (SWIG_IsNewObj(res)) %delete(ptr);
|
||||||
}
|
}
|
||||||
|
|
@ -65,7 +69,7 @@
|
||||||
Type *optr = 0;
|
Type *optr = 0;
|
||||||
int ores = $input ? asptr_meth($input, &optr) : 0;
|
int ores = $input ? asptr_meth($input, &optr) : 0;
|
||||||
if (!SWIG_IsOK(ores) || !optr) {
|
if (!SWIG_IsOK(ores) || !optr) {
|
||||||
%dirout_fail(ores,"$type");
|
%dirout_fail((optr ? ores : SWIG_TypeError),"$type");
|
||||||
}
|
}
|
||||||
temp = *optr;
|
temp = *optr;
|
||||||
$result = &temp;
|
$result = &temp;
|
||||||
|
|
@ -76,7 +80,7 @@
|
||||||
Type *optr = 0;
|
Type *optr = 0;
|
||||||
int ores = asptr_meth($input, &optr);
|
int ores = asptr_meth($input, &optr);
|
||||||
if (!SWIG_IsOK(ores) || !optr) {
|
if (!SWIG_IsOK(ores) || !optr) {
|
||||||
%dirout_fail(ores,"$type");
|
%dirout_fail((optr ? ores : SWIG_TypeError),"$type");
|
||||||
}
|
}
|
||||||
$result = *optr;
|
$result = *optr;
|
||||||
if (SWIG_IsNewObj(ores)) %delete(optr);
|
if (SWIG_IsNewObj(ores)) %delete(optr);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue