diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2021-04-24 10:38:50 +0100 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2021-04-26 22:32:52 +0100 |
commit | 13158bda9a1da399d10bf0761749a2cf448d9589 (patch) | |
tree | 3f79093721117d4b02d3b82a242836ccca917621 /Lib/guile | |
parent | abcae7c68b2ab456ae19b23a1ab969be184f4439 (diff) | |
download | swig-13158bda9a1da399d10bf0761749a2cf448d9589.tar.gz |
Member function pointer typemap tweaks
Use sizeof variable name rather than variable type.
Workaround Visual C++ unable to parse some complex C++11 types, such as
sizeof(short (Funcs::*)(bool) const &&)
Diffstat (limited to 'Lib/guile')
-rw-r--r-- | Lib/guile/typemaps.i | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i index cfccced88..84a754d8b 100644 --- a/Lib/guile/typemaps.i +++ b/Lib/guile/typemaps.i @@ -378,26 +378,26 @@ typedef unsigned long SCM; #define %argument_fail(code, type, name, argn) scm_wrong_type_arg((char *) FUNC_NAME, argn, $input); #define %as_voidptr(ptr) (void*)(ptr) -%typemap(in) SWIGTYPE (CLASS::*) { - int res = SWIG_ConvertMember($input, %as_voidptr(&$1), sizeof($type),$descriptor); +%typemap(in) SWIGTYPE (CLASS::*) { + int res = SWIG_ConvertMember($input, %as_voidptr(&$1), sizeof($1), $descriptor); if (!SWIG_IsOK(res)) { - %argument_fail(res,"$type",$symname, $argnum); + %argument_fail(res,"$type",$symname, $argnum); } } %typemap(out,noblock=1) SWIGTYPE (CLASS::*) { - %set_output(SWIG_NewMemberObj(%as_voidptr(&$1), sizeof($type), $descriptor)); + %set_output(SWIG_NewMemberObj(%as_voidptr(&$1), sizeof($1), $descriptor)); } %typemap(varin) SWIGTYPE (CLASS::*) { - int res = SWIG_ConvertMember($input,%as_voidptr(&$1), sizeof($type), $descriptor); + int res = SWIG_ConvertMember($input,%as_voidptr(&$1), sizeof($1), $descriptor); if (!SWIG_IsOK(res)) { scm_wrong_type_arg((char *) FUNC_NAME, 1, $input); } } %typemap(varout,noblock=1) SWIGTYPE (CLASS::*) { - %set_varoutput(SWIG_NewMemberObj(%as_voidptr(&$1), sizeof($type), $descriptor)); + %set_varoutput(SWIG_NewMemberObj(%as_voidptr(&$1), sizeof($1), $descriptor)); } /* ------------------------------------------------------------ |