Fix some bugs since change of vtable to use List instead of Hash
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9409 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
2788a39211
commit
1137bf3ec8
1 changed files with 11 additions and 2 deletions
|
|
@ -1832,6 +1832,8 @@ int Language::unrollVirtualMethods(Node *n,
|
|||
} else {
|
||||
/* or just delete from the vm, since is not a director method */
|
||||
Delitem(vm, i);
|
||||
len--;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2472,9 +2474,8 @@ int Language::constructorDeclaration(Node *n) {
|
|||
}
|
||||
Delete(base);
|
||||
}
|
||||
|
||||
/* Only create a constructor if the class is not abstract */
|
||||
|
||||
|
||||
if (!Abstract) {
|
||||
Node *over;
|
||||
over = Swig_symbol_isoverloaded(n);
|
||||
|
|
@ -3212,6 +3213,14 @@ int Language::abstractClassTest(Node *n) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
#ifdef SWIG_DEBUG
|
||||
Printf(stderr,"method %s %d\n",method_id,exists_item ? 1 : 0);
|
||||
#endif
|
||||
Delete(method_id);
|
||||
if (!exists_item) {
|
||||
dirabstract = ni;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (dirabstract) {
|
||||
if (is_public(dirabstract)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue