[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-----