bugGNU Octave - Bugs: bug #32641, Load of MAT-files that contain...


bug #32641: Load of MAT-files that contain objects

Submitter:  Guillaume <gyom>
Submitted:  Tue 01 Mar 2011 06:46:06 PM UTC
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Fixed Assigned to:  dbateman
Originator Name:  Guillaume Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup

Jump to the original submission

Thu 02 Jun 2011 07:08:04 PM UTC, comment #7: 

The fix for MAT-files only has been checked in on the development branch (http://hg.savannah.gnu.org/hgweb/octave/rev/c0d102ad9bba)

Rik <rik5>
Group administrator
Wed 01 Jun 2011 11:13:44 PM UTC, comment #6: 

The Octave load/save code probes the value type, then creates a dummy variable of this type with

octave_value tc = octave_value_typeinfo::lookup_type (typ);

before finally calling for example

tc.load_ascii (is);

So even before we get to the load_ascii call in ov-class.cc the type of the variable is fixed and mutating the varible to a structure after calling the examplar fails can not be performed there. The mutation has to be perform when we're back from the call to load_ascii. I don't see an easy means of doing this without significant chznges to the API of load_ascii, etc

In any case that shouldn't stop the patch for the matfile version of this problem being applied.


David Bateman <dbateman>
Group Member
Tue 19 Apr 2011 02:03:52 AM UTC, comment #5: 

Your current patch works, but only applies to .mat files.  Wouldn't it make sense to have this conversion for Octave files as well?

I just tried saving an instance of the 'Snork' class using run-octave in the development directory.  If I transfer this file outside of the development directory and then run an ordinary version of Octave I get the "no constructor" warning and there is nothing I can do with the object.  This is with Octave's own text save format.

Rik <rik5>
Group administrator
Sun 17 Apr 2011 06:50:45 PM UTC, comment #4: 

It is really not easy for me to commit at the moment as I only have an anonymous checkout, and thats at work. I'd be happy if you commit and close this bug


David Bateman <dbateman>
Group Member
Sat 02 Apr 2011 02:57:10 AM UTC, comment #3: 

Since this patch appears to work, is there any reason not to apply it to the development code?

Rik <rik5>
Group administrator
Tue 08 Mar 2011 07:15:32 PM UTC, comment #2: 


it seems to work for me so that would be great if you could commit this change - if it could be applied to the 3.4 branch, that would be great too.


Guillaume <gyom>
Fri 04 Mar 2011 11:14:23 PM UTC, comment #1: 

Completely untested, but the attached should do what you want


(file #22839)

David Bateman <dbateman>
Group Member
Tue 01 Mar 2011 06:46:06 PM UTC, original submission:  

In MATLAB, when loading a MAT-file containing an object whose class in not in the path, one gets the warning:

Element(s) of class 'myclass' do not match the current constructor definition.  The element(s) have been converted to structures.

while with Octave, one gets:

warning: no constructor for class myclass

and, importantly, the variable is still an object of class myclass (in MATLAB, it is a simple struct as expected).

Could an automatic conversion to a structure be implemented in such case?

Guillaume <gyom>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #22839:  changeset.class added by dbateman (2KiB - application/java-vm)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by dbateman (Updated the item)
  • -email is unavailable- added by gyom (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.


    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-06-02 rik5 StatusPatch Submitted Fixed
        Open/ClosedOpen Closed
    2011-06-01 dbateman Assigned toNone dbateman
    2011-04-02 rik5 StatusNone Patch Submitted
    2011-03-04 dbateman Attached File- Added changeset.class, #22839

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code