Fixed abstract_typedef2.i test (apparently).
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4389 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
bd65e32825
commit
4efcd34b17
1 changed files with 17 additions and 9 deletions
|
|
@ -36,14 +36,19 @@ static int check_implemented(Node *n) {
|
||||||
while (n) {
|
while (n) {
|
||||||
if (Strcmp(nodeType(n), "cdecl") == 0) {
|
if (Strcmp(nodeType(n), "cdecl") == 0) {
|
||||||
local_decl = Getattr(n,"decl");
|
local_decl = Getattr(n,"decl");
|
||||||
if (local_decl) local_decl = SwigType_typedef_resolve_all(local_decl);
|
if (SwigType_isfunction(local_decl)) {
|
||||||
if (local_decl && (Strcmp(local_decl, search_decl) == 0)) {
|
SwigType *decl1 = SwigType_typedef_resolve_all(local_decl);
|
||||||
if (!Getattr(n,"abstract")) {
|
SwigType *decl2 = SwigType_pop_function(decl1);
|
||||||
Delete(local_decl);
|
if (Strcmp(decl2, search_decl) == 0) {
|
||||||
return 1;
|
if (!Getattr(n,"abstract")) {
|
||||||
|
Delete(decl1);
|
||||||
|
Delete(decl2);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Delete(decl1);
|
||||||
|
Delete(decl2);
|
||||||
}
|
}
|
||||||
Delete(local_decl);
|
|
||||||
}
|
}
|
||||||
n = Getattr(n,"csym:nextSibling");
|
n = Getattr(n,"csym:nextSibling");
|
||||||
}
|
}
|
||||||
|
|
@ -174,9 +179,12 @@ class Allocate : public Dispatcher {
|
||||||
}
|
}
|
||||||
assert(dn != 0); // Assertion of doom
|
assert(dn != 0); // Assertion of doom
|
||||||
*/
|
*/
|
||||||
search_decl = base_decl;
|
if (SwigType_isfunction(base_decl)) {
|
||||||
|
search_decl = SwigType_pop_function(base_decl);
|
||||||
|
}
|
||||||
Node *dn = Swig_symbol_clookup_local_check(name,0,check_implemented);
|
Node *dn = Swig_symbol_clookup_local_check(name,0,check_implemented);
|
||||||
|
Delete(search_decl);
|
||||||
|
Delete(base_decl);
|
||||||
/*
|
/*
|
||||||
while (dn && !implemented) {
|
while (dn && !implemented) {
|
||||||
String *local_decl = Getattr(dn,"decl");
|
String *local_decl = Getattr(dn,"decl");
|
||||||
|
|
@ -190,7 +198,7 @@ class Allocate : public Dispatcher {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Delete(base_decl);
|
|
||||||
|
|
||||||
/* if (!implemented && (Getattr(nn,"abstract"))) {
|
/* if (!implemented && (Getattr(nn,"abstract"))) {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue