[bug #68594] Regression in MAT-file loading breaks GUIDE applications

Hg200 <[email protected]>
Newsgroups gmane.comp.gnu.octave.bugs
Message-ID <[email protected]>
Please use the bug tracker to post updates to a bug report.  The mailing list is intended as a read-only notification stream.  Info posted to this mailing list address won't appear in the tracker database where it is most useful.

Follow-up Comment #1, bug #68594 (group octave):

Update:

It turns out there are two different issues overlapping here, the MAT-file
loader and an older change in graphics.cc.

Reason for this:

1.) Changeset 34833:df257404f3e8 (August 2025) broke loading GUIDE figures due
to the new MAT-file loader. As a result, GUIDE applications stopped working.

2.) On the current default branch, GUIDE figures are loaded successfully. But
there are still differences in the parsed data compared to the previous
implementation, but I found that these differences do not affect running GUIDE
applications, since the affected data is discarded in the post-processing
chain in `hgload()` at:

hg = hg.(hgs{fig_file_version})

3.) On the current (latest) default branch, GUIDE applications fail at:

gui_mainfcn() -> openfig() -> hgload() -> struct2hdl() -> setprops(s, h, p,
hilev)

The call to `setprops()` produces the following error:

error: set: new children list must be a permutation of existing children with
visible handles

However, when comparing the input arguments used to create the figure and its
children, they are identical to those from the last known working changeset,
34831:bcc9c5609193 (August 2025).

4.) As a further test, I copied graphics.in.h and graphics.cc, from the known
working changeset to the current default branch tip. With these two files, the
GUIDE application starts and runs correctly.

5.) Another bisect shows that changes to graphics.cc in changeset
35014:1544079a994a are causing setprops() in struct2hdl() to fail when
updating the child. This causes the error message and prevents starting the
GUIDE app.

The necessary changes are very small

  // Return a 0x0 empty array, not 0x1.
  if (retval.isempty ())
    retval.resize (0,0);

When i undo this patch in the default branch tip, GUIDE applications start
working properly.

However the question is what's the best way to fix? Revert the patch in
graphics.cc or patch struct2hdl() and how?

Best regards


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?68594>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQQk97aszIMMAvLLwm6qLAuaBUf3TgUCanhyGAAKCRCqLAuaBUf3
Tnr0AQD6FGGn4NJRlh4JT/biWMdSzdtDKUPiui7ksis6NFvuvQD5AQtwI4A2eu+F
UX+PjdGR9gYZ/NURFIBPrDhN7VRUFQs=
=KlJG
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.