fix using + extend as reported by William

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8859 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2006-02-22 01:21:43 +00:00
commit e99a8a707f
3 changed files with 25 additions and 1 deletions

View file

@ -854,7 +854,20 @@ class TypePass : private Dispatcher {
if (!Getattr(nn,"sym:name")) Setattr(nn,"sym:name", symname);
if (!GetFlag(nn,"feature:ignore")) {
Setattr(nn,"parms",CopyParmList(Getattr(c,"parms")));
ParmList *parms = CopyParmList(Getattr(c,"parms"));
Setattr(nn,"parms",parms);
Delete(parms);
if (Getattr(n,"feature:extend")) {
String *ucode = NewStringf("{ self->%s(",Getattr(n,"uname"));
for (ParmList *p = parms; p;) {
StringAppend(ucode,HashGetAttr(p,k_name));
p = nextSibling(p);
if (p) StringAppend(ucode,",");
}
StringAppend(ucode,"); }");
Setattr(nn,"code",ucode);
Delete(ucode);
}
ParmList *throw_parm_list = Getattr(c,"throws");
if (throw_parm_list)
Setattr(nn,"throws",CopyParmList(throw_parm_list));