# HG changeset patch # User John W. Eaton # Date 1249524665 14400 # Node ID ca95d991a65ac70c7570b706d060140145e4bccb # Parent 9035e668ca96beaa60ddcc1a8837507aa17e603f use key list order for iterating through map with for loop diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +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. + * Makefile.in (OCT_LINK_DEPS): Also include $(RLD_FLAG) in the list. 2009-08-05 John W. Eaton diff --git a/src/pt-eval.cc b/src/pt-eval.cc --- a/src/pt-eval.cc +++ b/src/pt-eval.cc @@ -432,17 +432,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);