fix overload + protected member issue reported by Colin McDonald

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8851 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2006-02-20 16:52:28 +00:00
commit 0e217ce9fb
3 changed files with 22 additions and 4 deletions

View file

@ -49,10 +49,12 @@ void clean_overloaded(Node *n) {
Node *first = 0;
int cnt = 0;
while (nn) {
if ((Strcmp(nodeType(nn),"template") == 0) ||
(GetFlag(nn,"feature:ignore")) ||
String *ntype = nodeType(nn);
if ((GetFlag(nn,"feature:ignore")) ||
(Getattr(nn,"error")) ||
((Strcmp(nodeType(nn),"using") == 0) && !firstChild(nn))) {
(Strcmp(ntype,"template") == 0) ||
((Strcmp(ntype,"cdecl") == 0) && is_protected(n) && !is_member_director(n)) ||
((Strcmp(ntype,"using") == 0) && !firstChild(nn))) {
/* Remove from overloaded list */
Node *ps = Getattr(nn,"sym:previousSibling");
Node *ns = Getattr(nn,"sym:nextSibling");
@ -67,7 +69,7 @@ void clean_overloaded(Node *n) {
Delattr(nn,"sym:overloaded");
nn = ns;
continue;
} else if ((Strcmp(nodeType(nn),"using") == 0)) {
} else if ((Strcmp(ntype,"using") == 0)) {
/* A possibly dangerous parse tree hack. We're going to
cut the parse tree node out and stick in the resolved
using declarations */