bugGNU Octave - Bugs: bug #49600, Error in the...

 
 

bug #49600: Error in the unwind_protect_cleanup section of print.m

Submitted by:  Guillaume <gyom>
Submitted on:  Mon 14 Nov 2016 12:55:04 PM UTC  
 
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  None
Status:  Fixed Assigned to:  None
Originator Name:  Guillaume Open/Closed:  Closed
Release:  dev Operating System:  Any

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 16 Nov 2016 06:35:32 PM UTC, comment #4: 

I pushed Pantxo's cset here (http://hg.savannah.gnu.org/hgweb/octave/rev/219c70d2ba28).  I made two small changes.

Change #1 : indexing is faster than deleting

    hobj(strncmp (get (hobj, "type"), "ui", 2)) = [];

=>

    hobj = hobj(! strncmp (get (hobj, "type"), "ui", 2));

Change #2 : No need to repeat file name in commit message when multiple things were done to it.


* print.m: initialize nfig variable at the beginning of the unwind_protect block
* print.m: remove ui* objects from the list of axes children
* print.m: consistently use "end" keyword to index prop array
* print.m: increment nfig after each "set" operation on "units" properties

=>

* print.m: Initialize nfig variable at beginning of the unwind_protect block.
Remove ui* objects from the list of axes children.
Consistently use "end" keyword to index prop array.
Increment nfig after each "set" operation on "units" properties.

Rik <rik5>
Project Administrator
Tue 15 Nov 2016 05:11:30 PM UTC, comment #3: 

Thanks Pantxo, with your patch the error disappeared.

Guillaume <gyom>
Mon 14 Nov 2016 10:24:30 PM UTC, comment #2: 

Hi,

I attached a patch in which I addressed the two issues:

  • don't change the ui* objects units
  • declare nfig soon and paranoiacally increment after each set operation

(file #38965)

Pantxo Diribarne <pantxo>
Project Member
Mon 14 Nov 2016 02:12:55 PM UTC, comment #1: 

Here is a way to reproduce the error:

h=figure;
uicontrol('style','text','string','Octave');
plot(rand(5))
print(h);

This points out to another bug where print.m tries to change the "units" property of the uicontrol to "data" and fails; print('-noui') being not implemented yet.

Guillaume <gyom>
Mon 14 Nov 2016 12:55:04 PM UTC, original submission:  

If, for some reasons, a call to 'print' fails, I observe the error message:

'nfig' undefined near line 510 column 15

and looking at print.m, it indeed seems that if an error occurs before the nfig variable is defined (lines 393, 396) in the unwind_protect section, the subsequent cleanup will fail.

Guillaume <gyom>

 

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

Attach Files:
   
   
Comment:
   

Attached Files
file #38965:  unwind.patch added by pantxo (4KiB - text/x-diff)

 

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 pantxo (Updated the item)
  • -email is unavailable- added by gyom (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-11-16 rik5 StatusPatch Submitted => Fixed
        Open/ClosedOpen => Closed
    2016-11-14 pantxo Attached File- => Added unwind.patch, #38965
        StatusNone => Patch Submitted

    Back to the top


    Powered by Savane 3.5