fix extend_placement.i case, ie extend overloding + member overloading

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6334 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-10-05 23:17:40 +00:00
commit 085e7a8329

View file

@ -2613,6 +2613,7 @@ cpp_class_decl :
} cpp_members RBRACE cpp_opt_declarators { } cpp_members RBRACE cpp_opt_declarators {
Node *p; Node *p;
SwigType *ty; SwigType *ty;
Node *am = 0;
inclass = 0; inclass = 0;
$$ = new_node("class"); $$ = new_node("class");
Setline($$,cparse_start_line); Setline($$,cparse_start_line);
@ -2624,12 +2625,12 @@ cpp_class_decl :
Setattr($$,"abstract", pure_abstract($7)); Setattr($$,"abstract", pure_abstract($7));
/* This bit of code merges in a previously defined %extend directive (if any) */ /* This bit of code merges in a previously defined %extend directive (if any) */
if (extendhash) { if (extendhash) {
String *clsname = Swig_symbol_qualifiedscopename(0); String *clsname = Swig_symbol_qualifiedscopename(0);
Node *am = Getattr(extendhash,clsname); am = Getattr(extendhash,clsname);
if (am) { if (am) {
merge_extensions($$,am); merge_extensions($$,am);
appendChild($$,am);
Delattr(extendhash,clsname); Delattr(extendhash,clsname);
} }
Delete(clsname); Delete(clsname);
@ -2638,6 +2639,8 @@ cpp_class_decl :
Setattr(classes,Swig_symbol_qualifiedscopename(0),$$); Setattr(classes,Swig_symbol_qualifiedscopename(0),$$);
appendChild($$,$7); appendChild($$,$7);
if (am) appendChild($$,am);
p = $9; p = $9;
if (p) { if (p) {
set_nextSibling($$,p); set_nextSibling($$,p);