# HG changeset patch # User Robert T. Short # Date 1242417750 14400 # Node ID 5f36c6c9be13d6904662ce217a3cba2ea3bb3bf1 # Parent ba7f45642ffe3f65a286ae8e414948899c66c2a7 Handle loading of objects with inheritance from MAT files. diff -r ba7f45642ffe -r 5f36c6c9be13 src/ChangeLog --- 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 + + * 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 * error.cc (Ferror): Handle error struct argument. diff -r ba7f45642ffe -r 5f36c6c9be13 src/ls-mat5.cc --- 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()) { diff -r ba7f45642ffe -r 5f36c6c9be13 src/ov-class.cc --- 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