Mercurial > hg > octave-nkf
diff src/ov-cell.cc @ 7651:443a8f5a50fd
require both subsref variants to be defined in octave_value subclasses
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 26 Mar 2008 22:09:42 -0400 |
parents | c195bd0a5c64 |
children | f5268d7045d7 |
line wrap: on
line diff
--- a/src/ov-cell.cc +++ b/src/ov-cell.cc @@ -65,16 +65,17 @@ error ("assignment to cell array failed"); } -octave_value +octave_value_list octave_cell::subsref (const std::string& type, - const std::list<octave_value_list>& idx) + const std::list<octave_value_list>& idx, + int nargout) { - octave_value retval; + octave_value_list retval; switch (type[0]) { case '(': - retval = do_index_op (idx.front ()); + retval(0) = do_index_op (idx.front ()); break; case '{': @@ -86,7 +87,7 @@ Cell tcell = tmp.cell_value (); if (tcell.length () == 1) - retval = tcell(0,0); + retval(0) = tcell(0,0); else { octave_idx_type n = tcell.numel (); @@ -99,7 +100,7 @@ lst(i) = tcell(i); } - retval = octave_value (lst, true); + retval(0) = octave_value (lst, true); } } } @@ -121,7 +122,7 @@ // octave_user_function::subsref. if (idx.size () > 1) - retval = retval.next_subsref (type, idx); + retval = retval(0).next_subsref (nargout, type, idx); return retval; }