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:
parent
ad892098e8
commit
085e7a8329
1 changed files with 5 additions and 2 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue