Nested C class setters restored in c++out mode for Octave

Suitable casts are required so that assignment of instances of nested classes
work as the nested class is duplicated in the global namespace, eg:

struct Outer {
  struct Nested {
    int bar;
  } bar_instance;
};

Outer.bar_instance can now be assigned to.
This commit is contained in:
William S Fulton 2013-12-12 07:59:47 +00:00
commit e95ac82651
5 changed files with 41 additions and 6 deletions

View file

@ -159,7 +159,7 @@
%typemap(memberin) SWIGTYPE [ANY] {
if ($input) {
size_t ii = 0;
for (; ii < (size_t)$1_dim0; ++ii) $1[ii] = $input[ii];
for (; ii < (size_t)$1_dim0; ++ii) *($1_ltype)&$1[ii] = ($*1_ltype)$input[ii];
} else {
%variable_nullref("$type","$name");
}
@ -168,7 +168,7 @@
%typemap(globalin) SWIGTYPE [ANY] {
if ($input) {
size_t ii = 0;
for (; ii < (size_t)$1_dim0; ++ii) $1[ii] = $input[ii];
for (; ii < (size_t)$1_dim0; ++ii) *($1_ltype)&$1[ii] = ($*1_ltype)$input[ii];
} else {
%variable_nullref("$type","$name");
}
@ -181,7 +181,7 @@
%variable_fail(res, "$type", "$name");
} else if (inp) {
size_t ii = 0;
for (; ii < (size_t)$1_dim0; ++ii) $1[ii] = inp[ii];
for (; ii < (size_t)$1_dim0; ++ii) *($1_ltype)&$1[ii] = ($*1_ltype)inp[ii];
} else {
%variable_nullref("$type", "$name");
}