changeset 9206:5f36c6c9be13

Handle loading of objects with inheritance from MAT files.
author Robert T. Short <octave@phaselockedsystems.com>
date Fri, 15 May 2009 16:02:30 -0400
parents ba7f45642ffe
children 25f50d2d76b3
files src/ChangeLog src/ls-mat5.cc src/ov-class.cc
diffstat 3 files changed, 15 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri May 15 12:09:11 2009 -0400
+++ b/src/ChangeLog	Fri May 15 16:02:30 2009 -0400
@@ -1,3 +1,10 @@
+2009-05-15  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.cc (octave_class::exemplar_info): Fix typo in error message.
+	* ov-class.cc (Fmethods): Methods returns cell array.
+	* ls-mat5.cc (read_mat5_binary_element):
+	Construct exemplar array and ensure inheritance is correct.
+
 2009-05-15  John W. Eaton  <jwe@octave.org>
 
 	* error.cc (Ferror): Handle error struct argument.
--- a/src/ls-mat5.cc	Fri May 15 12:09:11 2009 -0400
+++ b/src/ls-mat5.cc	Fri May 15 16:02:30 2009 -0400
@@ -1106,8 +1106,13 @@
 	      }
 	    else
 	      {
-		tc = new octave_class (m, classname);
+		octave_class* cls = new octave_class (m, classname);
+		cls->reconstruct_exemplar ();
 
+		if (! cls->reconstruct_parents ())
+		  warning ("load: unable to reconstruct object inheritance");
+
+		tc = cls; 
 		if (load_path::find_method (classname, "loadobj") != 
 		    std::string())
 		  {
--- a/src/ov-class.cc	Fri May 15 12:09:11 2009 -0400
+++ b/src/ov-class.cc	Fri May 15 16:02:30 2009 -0400
@@ -1487,7 +1487,7 @@
   else
     {
       retval = false;
-      error ("inavlid comparison of class exemplar to non-class object");
+      error ("invalid comparison of class exemplar to non-class object");
     }
 
   return retval;
@@ -1701,7 +1701,7 @@
 	      octave_stdout << std::endl;
 	    }
 	  else
-	    retval = sv;
+	    retval = Cell (sv);
 	}	  
     }
   else