more fixes and cases for smart pointers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6917 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
d6802c75ba
commit
533b36c15d
5 changed files with 12 additions and 10 deletions
|
|
@ -316,7 +316,6 @@ class Allocate : public Dispatcher {
|
|||
Append(methods,cp);
|
||||
}
|
||||
} else {
|
||||
Setattr(cp,"feature:immutable","1");
|
||||
Append(methods,cp);
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1208,12 +1208,11 @@ Language::membervariableHandler(Node *n) {
|
|||
int assignable = is_assignable(n);
|
||||
|
||||
if (SmartPointer) {
|
||||
if (!Getattr(n,"classname")) {
|
||||
Setattr(n,"classname",Getattr(CurrentClass,"allocate:smartpointerbase"));
|
||||
if (Getattr(CurrentClass,"allocate:smartpointerconst")) {
|
||||
assignable = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (assignable) {
|
||||
int make_wrapper = 1;
|
||||
String *tm = 0;
|
||||
|
|
@ -1221,7 +1220,8 @@ Language::membervariableHandler(Node *n) {
|
|||
if (!Extend) {
|
||||
if (SmartPointer) {
|
||||
if (checkAttribute(n, "storage", "static")) {
|
||||
String *base = Getattr(n,"classname");
|
||||
Node *sn = Getattr(n,"cplus:staticbase");
|
||||
String *base = Getattr(sn,"name");
|
||||
target = NewStringf("%s::%s", base,name);
|
||||
} else {
|
||||
target = NewStringf("(*%s)->%s",Swig_cparm_name(0,0),name);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue