SwigType * handling corrections

Further corrections to pass SwigType * to methods expecting types
instead of passing readable type strings.

Required reworking code that adds a fake inheritance for smart pointers
using the smartptr feature. Swig_smartptr_upcast() added as a support
function for this.
This commit is contained in:
William S Fulton 2022-11-09 22:11:27 +00:00
commit 2acdfd77e9
7 changed files with 98 additions and 59 deletions

View file

@ -69,6 +69,8 @@ static Hash *typemaps;
* resolving the template parameters.
*
* This is a copy and modification of feature_identifier_fix in parser.y.
* Also, Swig_smartptr_upcast() could be removed if SwigType_typedef_resolve_all
* is fixed to resolve all template parameters like below.
* ----------------------------------------------------------------------------- */
static SwigType *typemap_identifier_fix(const SwigType *s) {
@ -102,6 +104,7 @@ static Hash *get_typemap(const SwigType *type) {
dtype = Swig_symbol_type_qualify(ty, 0);
type = dtype;
Delete(ty);
Delete(rty);
}
/* remove unary scope operator (::) prefix indicating global scope for looking up in the hashmap */