fix parentnode for %extend methods

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9442 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2006-10-12 19:47:24 +00:00
commit b7057f7ae8
3 changed files with 5 additions and 5 deletions

View file

@ -975,7 +975,7 @@ Language::functionHandler(Node *n) {
globalfunctionHandler(n);
} else {
Node* explicit_n = 0;
if (directorsEnabled() && is_member_director(CurrentClass,n) && !Extend && !extraDirectorProtectedCPPMethodsRequired()) {
if (directorsEnabled() && is_member_director(CurrentClass,n) && !extraDirectorProtectedCPPMethodsRequired()) {
bool virtual_but_not_pure_virtual = (!(Cmp(storage, "virtual")) && (Cmp(Getattr(n, "value"), "0") != 0));
if (virtual_but_not_pure_virtual) {
// Add additional wrapper which makes an explicit call to the virtual method (ie not a virtual call)

View file

@ -39,7 +39,7 @@ int is_member_director(Node* parentnode, Node* member)
int parent_director = director_mode && GetFlag(parentnode,"feature:director");
int cdecl_director = parent_director || GetFlag(member,"feature:director");
int cdecl_nodirector = GetFlag(member,"feature:nodirector");
return cdecl_director && !cdecl_nodirector;
return cdecl_director && !cdecl_nodirector && !GetFlag(member, "feature:extend");
} else {
return 0;
}