Mercurial > hg > octave-lyh
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 +++ b/src/ChangeLog @@ -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 +++ b/src/ls-mat5.cc @@ -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 +++ b/src/ov-class.cc @@ -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