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:
Marcelo Matus 2004-12-23 08:56:27 +00:00
commit 533b36c15d
5 changed files with 12 additions and 10 deletions

View file

@ -316,7 +316,6 @@ class Allocate : public Dispatcher {
Append(methods,cp);
}
} else {
Setattr(cp,"feature:immutable","1");
Append(methods,cp);
}
} else {

View file

@ -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);