diff options
Diffstat (limited to 'Source/Modules/lang.cxx')
-rw-r--r-- | Source/Modules/lang.cxx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx index bf2ca3be1..a6b39868b 100644 --- a/Source/Modules/lang.cxx +++ b/Source/Modules/lang.cxx @@ -259,10 +259,12 @@ SwigType *cplus_value_type(SwigType *t) { Node *n; if (!CPlusPlus) return 0; if (SwigType_isclass(t)) { - SwigType *td = SwigType_typedef_resolve_all(t); + SwigType *ftd = SwigType_typedef_resolve_all(t); + SwigType *td = SwigType_strip_qualifiers(ftd); + Delete(ftd); if ((n = Swig_symbol_clookup(td,0))) { if ((Strcmp(nodeType(n),"class") == 0) && (!Getattr(n,"allocate:default_constructor") || (Getattr(n,"allocate:noassign")))) { - String *s = NewStringf("SwigValueWrapper< %s >",t); + String *s = NewStringf("SwigValueWrapper< %s >",SwigType_str(t,0)); Delete(td); return s; } else { @@ -270,7 +272,7 @@ SwigType *cplus_value_type(SwigType *t) { } } if (SwigType_issimple(td) && SwigType_istemplate(td)) { - String *s = NewStringf("SwigValueWrapper< %s >",t); + String *s = NewStringf("SwigValueWrapper< %s >",SwigType_str(t,0)); Delete(td); return s; } |