Mercurial > octave-antonio
diff src/pt-eval.cc @ 9494:ca95d991a65a
use key list order for iterating through map with for loop
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 05 Aug 2009 22:11:05 -0400 |
parents | bbe033dcfe13 |
children | 2cd940306a06 |
line wrap: on
line diff
--- a/src/pt-eval.cc Wed Aug 05 20:19:47 2009 -0400 +++ b/src/pt-eval.cc Wed Aug 05 22:11:05 2009 -0400 @@ -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);