diff src/ov-base.cc @ 10742:604e13a89c7f

initial code for structs rewrite
author Jaroslav Hajek <highegg@gmail.com>
date Tue, 22 Jun 2010 15:22:36 +0200
parents 654fbde5dceb
children 8a868004a437
line wrap: on
line diff
--- a/src/ov-base.cc	Mon Jun 21 22:35:11 2010 -0700
+++ b/src/ov-base.cc	Tue Jun 22 15:22:36 2010 +0200
@@ -885,14 +885,36 @@
   return retval;
 }
 
-Octave_map
+octave_map
 octave_base_value::map_value (void) const
 {
-  Octave_map retval;
+  octave_map retval;
   gripe_wrong_type_arg ("octave_base_value::map_value()", type_name ());
   return retval;
 }
 
+octave_scalar_map
+octave_base_value::scalar_map_value (void) const
+{
+  octave_map tmp = map_value ();
+
+  if (tmp.numel () == 1)
+    return tmp.checkelem (0);
+  else
+    {
+      if (! error_state)
+        error ("invalid conversion of multidimensional struct to scalar struct");
+
+      return octave_scalar_map ();
+    }
+}
+
+Octave_map
+octave_base_value::old_map_value (void) const
+{
+  return map_value ();
+}
+
 string_vector
 octave_base_value::map_keys (void) const
 {