more smart pointers + extend fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6919 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
d1f4bec910
commit
dfa9bdb515
2 changed files with 27 additions and 22 deletions
|
|
@ -99,30 +99,32 @@ public:
|
|||
|
||||
|
||||
%inline %{
|
||||
|
||||
class DFoo;
|
||||
|
||||
class DPtrFoo
|
||||
{
|
||||
DFoo *p;
|
||||
public:
|
||||
DPtrFoo(DFoo *ptr) : p(ptr)
|
||||
{
|
||||
}
|
||||
namespace foo {
|
||||
|
||||
DFoo* operator->(void) {return p;};
|
||||
};
|
||||
|
||||
class DFoo
|
||||
{
|
||||
public:
|
||||
void F(void) {};
|
||||
};
|
||||
|
||||
class DFoo;
|
||||
|
||||
class DPtrFoo
|
||||
{
|
||||
DFoo *p;
|
||||
public:
|
||||
DPtrFoo(DFoo *ptr) : p(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
DFoo* operator->(void) {return p;};
|
||||
};
|
||||
|
||||
class DFoo
|
||||
{
|
||||
public:
|
||||
void F(void) {};
|
||||
};
|
||||
}
|
||||
%}
|
||||
|
||||
|
||||
%extend DFoo {
|
||||
|
||||
%extend foo::DFoo {
|
||||
static int SExt(int i = 1) {return i;};
|
||||
int Ext(int i = 2) {return i;};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1083,14 +1083,17 @@ Language::staticmemberfunctionHandler(Node *n) {
|
|||
String *cname, *mrename;
|
||||
|
||||
if (!Extend) {
|
||||
String *sname = Getattr(Getattr(n,"cplus:staticbase"),"name");
|
||||
Node *sb = Getattr(n,"cplus:staticbase");
|
||||
String *sname = sb ? Getattr(sb,"name") : 0;
|
||||
if (sname) {
|
||||
cname = NewStringf("%s::%s",sname,name);
|
||||
} else {
|
||||
cname = NewStringf("%s::%s",ClassName,name);
|
||||
}
|
||||
} else {
|
||||
cname = Copy(Swig_name_member(ClassPrefix,name));
|
||||
String *mname = Swig_name_mangle(ClassName);
|
||||
cname = Swig_name_member(mname,name);
|
||||
Delete(mname);
|
||||
}
|
||||
mrename = Swig_name_member(ClassPrefix, symname);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue