diff src/oct-map.cc @ 5881:70b3f8f1a793

[project @ 2006-07-08 03:54:17 by jwe]
author jwe
date Sat, 08 Jul 2006 03:56:46 +0000
parents 84ca47e311b3
children c20eb7330d13
line wrap: on
line diff
--- a/src/oct-map.cc	Thu Jul 06 22:36:00 2006 +0000
+++ b/src/oct-map.cc	Sat Jul 08 03:56:46 2006 +0000
@@ -98,6 +98,8 @@
       abort ();
     }
 
+  assert (length () == key_list.size ());
+
   return string_vector (key_list);
 }
 
@@ -183,9 +185,9 @@
 
   if (length() == rb.length())
     {
-      for (Octave_map::const_iterator pa = begin (); pa != end (); pa++)
+      for (const_iterator pa = begin (); pa != end (); pa++)
 	{
-	  Octave_map::const_iterator pb = rb.seek (key(pa));
+	  const_iterator pb = rb.seek (key(pa));
 
 	  if (pb == rb.end ())
 	    {
@@ -240,7 +242,7 @@
 	{
 	  std::string k = t_keys[i];
 
-	  map[k] = contents (k).assign (idx, Cell());
+	  map[k] = contents(k).assign (idx, Cell());
 
 	  if (error_state)
 	    break;
@@ -314,7 +316,10 @@
 Octave_map::assign (const octave_value_list& idx, const std::string& k,
 		    const Cell& rhs)
 {
-  Cell tmp = map[k];
+  Cell tmp;
+
+  if (contains (k))
+    tmp = map[k];
 
   octave_value fill_value = Matrix ();