diff --git a/Source/Swig/fragment.c b/Source/Swig/fragment.c index 429878a78..2c426f4d9 100644 --- a/Source/Swig/fragment.c +++ b/Source/Swig/fragment.c @@ -38,9 +38,11 @@ Swig_fragment_register(Node* fragment) { String *name = Copy(Getattr(fragment,"value")); String *type = Getattr(fragment,"type"); if (type) { - String *mangle = Swig_string_mangle(type); + SwigType *rtype = SwigType_typedef_resolve_all(type); + String *mangle = Swig_string_mangle(rtype); Printf(name,"%s",mangle); Delete(mangle); + Delete(rtype); } if (debug) Printf(stdout,"register fragment %s %s\n",name,type); if (!fragments) { diff --git a/Source/Swig/typemap.c b/Source/Swig/typemap.c index ed6e61230..49e1bba3b 100644 --- a/Source/Swig/typemap.c +++ b/Source/Swig/typemap.c @@ -1193,9 +1193,11 @@ String *Swig_typemap_lookup_new(const String_or_char *op, Node *node, const Stri String *value = Copy(Getattr(kw,"value")); String *type = Getattr(kw,"type"); if (type) { - String *mangle = Swig_string_mangle(type); + SwigType *rtype = SwigType_typedef_resolve_all(type); + String *mangle = Swig_string_mangle(rtype); Printf(value,"%s",mangle); Delete(mangle); + Delete(rtype); } sprintf(temp,"%s:%s",Char(op),Char(Getattr(kw,"name"))); Setattr(node,tmop_name(temp), value);