# HG changeset patch # User John W. Eaton # Date 1249625602 -7200 # Node ID 68a4e6a2dc31d5057ee8a1552b3624a5c9a990a7 # Parent c663c1a78c4af0059e0e35b60b3a55c762f507c8 use key list order for iterating through map with for loop diff -r c663c1a78c4a -r 68a4e6a2dc31 src/ChangeLog --- a/src/ChangeLog Fri Aug 07 08:11:49 2009 +0200 +++ b/src/ChangeLog Fri Aug 07 08:13:22 2009 +0200 @@ -1,3 +1,8 @@ +2009-08-05 John W. Eaton + + * pt-eval.cc (tree_evaluator::visit_complex_for_command): + Use key_list order for iterating through map. + 2009-08-07 Jaroslav Hajek * pt-idx.cc (tree_index_expression::lvalue): Implant code from diff -r c663c1a78c4a -r 68a4e6a2dc31 src/pt-eval.cc --- a/src/pt-eval.cc Fri Aug 07 08:11:49 2009 +0200 +++ b/src/pt-eval.cc Fri Aug 07 08:13:22 2009 +0200 @@ -435,17 +435,21 @@ octave_lvalue key_ref = elt->lvalue (); - const Octave_map tmp_val (rhs.map_value ()); + const Octave_map tmp_val = rhs.map_value (); tree_statement_list *loop_body = cmd.body (); - for (Octave_map::const_iterator q = tmp_val.begin (); q != tmp_val.end (); q++) - { - octave_value key = tmp_val.key (q); + string_vector keys = tmp_val.keys (); + + octave_idx_type nel = keys.numel (); - const Cell val_lst = tmp_val.contents (q); + for (octave_idx_type i = 0; i < nel; i++) + { + std::string key = keys[i]; - octave_idx_type n = tmp_val.numel (); + const Cell val_lst = tmp_val.contents (key); + + octave_idx_type n = val_lst.numel (); octave_value val = (n == 1) ? val_lst(0) : octave_value (val_lst);