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);