# HG changeset patch # User Jaroslav Hajek # Date 1243929464 -7200 # Node ID c2248cc4821a4ad5dceb48416897c43503a157ab # Parent 226f6d001ee2d28abd7518f65257145edfc4d35b don't crash on assignments like a() = 1 diff -r 226f6d001ee2 -r c2248cc4821a src/ChangeLog --- a/src/ChangeLog Tue Jun 02 09:06:49 2009 +0200 +++ b/src/ChangeLog Tue Jun 02 09:57:44 2009 +0200 @@ -1,3 +1,11 @@ +2009-06-02 Jaroslav Hajek + + * ov-base.cc (octave_base_value::numeric_assign): Gripe when no index + given. + * ov-cell.cc (octave_cell::subsasgn): Ditto. + * ov-struct.cc (octave_struct::subsasgn): Ditto. + * ov-list.cc (octave_list::subsasgn): Ditto. + 2009-05-28 John W. Eaton * load-path.cc (load_path::do_files): Avoid shadow warning from GCC. diff -r 226f6d001ee2 -r c2248cc4821a src/ov-base.cc --- a/src/ov-base.cc Tue Jun 02 09:06:49 2009 +0200 +++ b/src/ov-base.cc Tue Jun 02 09:57:44 2009 +0200 @@ -1203,6 +1203,12 @@ { octave_value retval; + if (idx.front ().empty ()) + { + error ("missing index in indexed assignment"); + return retval; + } + int t_lhs = type_id (); int t_rhs = rhs.type_id (); diff -r 226f6d001ee2 -r c2248cc4821a src/ov-cell.cc --- a/src/ov-cell.cc Tue Jun 02 09:06:49 2009 +0200 +++ b/src/ov-cell.cc Tue Jun 02 09:57:44 2009 +0200 @@ -216,6 +216,12 @@ clear_cellstr_cache (); + if (idx.front ().empty ()) + { + error ("missing index in indexed assignment"); + return retval; + } + if (n > 1) { switch (type[0]) diff -r 226f6d001ee2 -r c2248cc4821a src/ov-list.cc --- a/src/ov-list.cc Tue Jun 02 09:06:49 2009 +0200 +++ b/src/ov-list.cc Tue Jun 02 09:57:44 2009 +0200 @@ -157,6 +157,12 @@ octave_value t_rhs = rhs; + if (idx.front ().empty ()) + { + error ("missing index in indexed assignment"); + return retval; + } + if (n > 1) { switch (type[0]) diff -r 226f6d001ee2 -r c2248cc4821a src/ov-struct.cc --- a/src/ov-struct.cc Tue Jun 02 09:06:49 2009 +0200 +++ b/src/ov-struct.cc Tue Jun 02 09:57:44 2009 +0200 @@ -264,6 +264,12 @@ octave_value t_rhs = rhs; + if (idx.front ().empty ()) + { + error ("missing index in indexed assignment"); + return retval; + } + if (n > 1 && ! (type.length () == 2 && type[0] == '(' && type[1] == '.')) { switch (type[0])