Fix unary scope operator (::) (global scope) regression introduced in 2.0.0. The mangled symbol names were incorrect, sometimes resulting in types being incorrectly treated as opaque types.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12264 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2010-10-13 05:48:59 +00:00
commit c9ede7e622
5 changed files with 104 additions and 7 deletions

View file

@ -906,8 +906,9 @@ String *SwigType_manglestr_default(SwigType *s) {
String *result = 0;
String *base = 0;
SwigType *lt;
SwigType *sr = SwigType_typedef_qualified(s);
SwigType *ss = SwigType_typedef_resolve_all(sr);
SwigType *sr = SwigType_typedef_resolve_all(s);
SwigType *sq = SwigType_typedef_qualified(sr);
SwigType *ss = SwigType_remove_global_scope_prefix(sq);
s = ss;
@ -917,7 +918,6 @@ String *SwigType_manglestr_default(SwigType *s) {
ss = ty;
s = ss;
}
Delete(sr);
lt = SwigType_ltype(s);
result = SwigType_prefix(lt);
@ -966,8 +966,9 @@ String *SwigType_manglestr_default(SwigType *s) {
Insert(result, 0, "_");
Delete(lt);
Delete(base);
if (ss)
Delete(ss);
Delete(ss);
Delete(sq);
Delete(sr);
return result;
}