fix for bug 901706
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6438 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
f114279074
commit
a3a1db9f10
2 changed files with 30 additions and 0 deletions
|
|
@ -109,3 +109,28 @@ D getD(D a) {
|
|||
%}
|
||||
|
||||
%template() auto_ptr<A>;
|
||||
|
||||
|
||||
/***** Another strange case, member var + opaque, bug #901706 ******/
|
||||
%{
|
||||
class BB {
|
||||
friend class AA;
|
||||
|
||||
protected:
|
||||
BB(int a) { this->a = a; };
|
||||
BB() {};
|
||||
|
||||
int a;
|
||||
};
|
||||
%}
|
||||
|
||||
%inline %{
|
||||
|
||||
class AA {
|
||||
public:
|
||||
AA(){}
|
||||
|
||||
BB innerObj;
|
||||
};
|
||||
|
||||
%}
|
||||
|
|
|
|||
|
|
@ -1261,6 +1261,7 @@ Language::membervariableHandler(Node *n) {
|
|||
int flags = Extend | SmartPointer;
|
||||
//if (CPlusPlus) flags |= CWRAP_VAR_REFERENCE;
|
||||
Swig_MembersetToFunction(n,ClassType, flags);
|
||||
if (CPlusPlus) patch_parms(Getattr(n,"parms"));
|
||||
if (!Extend) {
|
||||
/* Check for a member in typemap here */
|
||||
|
||||
|
|
@ -1294,6 +1295,7 @@ Language::membervariableHandler(Node *n) {
|
|||
/* Emit get function */
|
||||
{
|
||||
Swig_MembergetToFunction(n,ClassType,Extend | SmartPointer);
|
||||
if (CPlusPlus) patch_parms(Getattr(n,"parms"));
|
||||
Setattr(n,"sym:name", mrename_get);
|
||||
functionWrapper(n);
|
||||
}
|
||||
|
|
@ -2297,6 +2299,8 @@ int Language::variableWrapper(Node *n) {
|
|||
String *tm = Swig_typemap_lookup_new("globalin", n, name, 0);
|
||||
|
||||
Swig_VarsetToFunction(n);
|
||||
if (CPlusPlus) patch_parms(Getattr(n,"parms"));
|
||||
|
||||
Setattr(n,"sym:name", Swig_name_set(symname));
|
||||
|
||||
/* String *tm = Swig_typemap_lookup((char *) "globalin",type,name,name,Swig_cparm_name(0,0),name,0);*/
|
||||
|
|
@ -2322,6 +2326,7 @@ int Language::variableWrapper(Node *n) {
|
|||
Setattr(n,"name",name);
|
||||
}
|
||||
Swig_VargetToFunction(n);
|
||||
if (CPlusPlus) patch_parms(Getattr(n,"parms"));
|
||||
Setattr(n,"sym:name", Swig_name_get(symname));
|
||||
functionWrapper(n);
|
||||
Swig_restore(n);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue