fix rename constructors
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8128 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
27fc8e577d
commit
f383985d2d
1 changed files with 19 additions and 2 deletions
|
|
@ -1445,8 +1445,16 @@ public:
|
|||
int isVirtual = (Cmp(storage,"virtual") == 0);
|
||||
/* Only the first constructor is handled as init method. Others
|
||||
constructor can be emitted via %rename */
|
||||
int handled_as_init = !have_constructor &&(constructor || Getattr(n,"handled_as_constructor"))
|
||||
&& ((shadow & PYSHADOW_MEMBER));
|
||||
int handled_as_init = 0;
|
||||
if (!have_constructor &&(constructor || Getattr(n,"handled_as_constructor"))
|
||||
&& ((shadow & PYSHADOW_MEMBER))) {
|
||||
String *nname = Getattr(n,"sym:name");
|
||||
String *sname = Getattr(getCurrentClass(),"sym:name");
|
||||
String *cname = Swig_name_construct(sname);
|
||||
handled_as_init = (Strcmp(nname,sname) == 0) || (Strcmp(nname,cname) == 0);
|
||||
Delete(cname);
|
||||
}
|
||||
|
||||
|
||||
if (Getattr(n,"sym:overloaded")) {
|
||||
overname = Getattr(n,"sym:overname");
|
||||
|
|
@ -2806,7 +2814,16 @@ public:
|
|||
if (!Getattr(n,"sym:nextSibling")) {
|
||||
if (shadow) {
|
||||
int allow_kwargs = (check_kwargs(n) && (!Getattr(n,"sym:overloaded"))) ? 1 : 0;
|
||||
int handled_as_init = 0;
|
||||
if (!have_constructor) {
|
||||
String *nname = Getattr(n,"sym:name");
|
||||
String *sname = Getattr(getCurrentClass(),"sym:name");
|
||||
String *cname = Swig_name_construct(sname);
|
||||
handled_as_init = (Strcmp(nname,sname) == 0) || (Strcmp(nname,cname) == 0);
|
||||
Delete(cname);
|
||||
}
|
||||
|
||||
if (!have_constructor && handled_as_init) {
|
||||
if (Getattr(n,"feature:shadow")) {
|
||||
String *pycode = pythoncode(Getattr(n,"feature:shadow"),tab4);
|
||||
String *pyaction = NewStringf("%s.%s",module, Swig_name_construct(symname));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue