diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx index 62384d8da..42c029061 100644 --- a/Source/Modules/lang.cxx +++ b/Source/Modules/lang.cxx @@ -1032,7 +1032,15 @@ Language::variableHandler(Node *n) { staticmembervariableHandler(n); } } else { + Swig_save("variableHandler",n,"feature:immutable",NIL); + /* If a smart-pointer and it's a constant access, we have to set immutable */ + if (SmartPointer) { + if (Getattr(CurrentClass,"allocate:smartpointerconst")) { + Setattr(n,"feature:immutable","1"); + } + } membervariableHandler(n); + Swig_restore(n); } } return SWIG_OK; @@ -1058,7 +1066,7 @@ int Language::membervariableHandler(Node *n) { Swig_require("membervariableHandler",n,"*name","*sym:name","*type",NIL); - Swig_save("membervariableHandler",n,"parms","feature:immutable",NIL); + Swig_save("membervariableHandler",n,"parms",NIL); String *name = Getattr(n,"name"); String *symname = Getattr(n,"sym:name"); @@ -1073,13 +1081,6 @@ Language::membervariableHandler(Node *n) { Delattr(n,"feature:except"); } - /* If a smart-pointer and it's a constant access, we have to set immutable */ - if (SmartPointer) { - if (Getattr(CurrentClass,"allocate:smartpointerconst")) { - Setattr(n,"feature:immutable","1"); - } - } - if (!AttributeFunctionGet) { String *mrename_get, *mrename_set;