bugGNU Octave - Bugs: bug #39243, patch {x,y,z,c}data properties are...


bug #39243: patch {x,y,z,c}data properties are not independent

Submitted by:  Ben Abbott <bpabbott>
Submitted on:  Thu Jun 13 02:40:49 2013  
Category: InterpreterSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Matlab Compatibility
Status: In ProgressAssigned to: None
Originator Name: Ben AbbottOpen/Closed: Open
Release: devOperating System: Any

Add a New Comment (Rich MarkupRich Markup):

You are not logged in

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


(Jump to the original submission Jump to the original submission)

Sun Nov 20 22:44:35 2016, comment #15:

I am not sure if this issue is still present in Octave 4.2.0.

The code from comment #0 now produces 10 nice bars in the plot (with gnuplot, fltk and qt). So the original issue seems to be FIXED now.

But the code from comment #8 now produces a lot of empty pdf files (only the first pdf file shows a blue patch) and issues a lot of warnings of the following type:

Hartmut <hardy>
Thu Oct 10 23:27:44 2013, comment #14:

I have no real objection to a change in severity. I had elevated it in the hope of getting the attention of someone with better coding skills than I. Feel free to change is as you see fit.

Ben Abbott <bpabbott>
Project Member
Thu Oct 10 22:34:32 2013, comment #13:

We haven't finalized the criteria, but for the last release it was anything >= 4. Right now, this is the only bug that doesn't fall into either being a regression, segfault, or level >= 5. So we could simply set the criteria to 5 and above and then this wouldn't count, yet still be marked important.

Rik <rik5>
Project Administrator
Thu Oct 10 22:23:09 2013, comment #12:

I thought only a blocker (5) would gate the release. Do I have that wrong?

Ben Abbott <bpabbott>
Project Member
Thu Oct 10 22:13:29 2013, comment #11:

Ben, this bug is currently marked at severity level 4 which will gate the 3.8 release. Can you review this bug again and decide whether it continues to warrant a level 4 rating?

Rik <rik5>
Project Administrator
Fri Jun 14 07:52:48 2013, comment #10:

May only apply to patches

After changing the xdata, the figure updates and the line object disappears.

Ben Abbott <bpabbott>
Project Member
Fri Jun 14 05:45:49 2013, comment #9:

I'm changing the category, item group, severity, and removing myself as assignee (since this is beyond my reach).

Ben Abbott <bpabbott>
Project Member
Fri Jun 14 05:41:10 2013, comment #8:

I've constructed a simple demo that runs in Matlab.

I've combined the results into a single file and have attached it.

(file #28315)

Ben Abbott <bpabbott>
Project Member
Fri Jun 14 01:06:55 2013, comment #7:

If I understand your question, my impression is that the value is "hidden". Essentially, something like below is happening.

The modified test you asked for is below.

Ben Abbott <bpabbott>
Project Member
Thu Jun 13 13:45:43 2013, comment #6:

Could you try the first 2 tests when x(4) is not 0? I'm wondering whether x(4) gets lost or is simply hidden when you change ydata to have 3 elements, then back to 4 elements.

Michael Goffioul <goffioul>
Project Member
Thu Jun 13 12:28:37 2013, comment #5:

I did some experimenting with patch (). I didn't expect Matlab to work this way.

It appears that Matlab's set() and get() functions are doing something special.

Ben Abbott <bpabbott>
Project Member
Thu Jun 13 10:56:58 2013, comment #4:

I'm pretty sure Matlab has the equivalent of Octave's addlistener for graphics object, but it might be an internal function. You'll have to dig a bit to find it.

Michael Goffioul <goffioul>
Project Member
Thu Jun 13 05:31:58 2013, comment #3:

To fix the {x,y,z}data listeners for bar() and area() I modified the {x,y,z}data listeners for patch objects, and that change fixed this problem.

I'lll do some more testing and push the changeset

Ben Abbott <bpabbott>
Project Member
Thu Jun 13 03:25:11 2013, comment #2:

I'm happy to give it a try. Unfortunately, I'm not sure how to do it. Octave's addlistener() function is not present in Matlab (they have one what works with classdef).

Any thoughts on how I'd manage a test?

Meanwhile, doing things like,

indicates that Octave and Matlab each update after each property is set. So my impression is that the way Octave's listeners are working is consistent with how Matlab updates.

Ben Abbott <bpabbott>
Project Member
Thu Jun 13 03:11:52 2013, comment #1:

This makes me wonder how/when listeners are executed in Matlab. Ben, would you be able to verify it? Create a "bar" graph, install a listener on the xdata and ydata (which will print the corresponding values, for instance) and use a single "set" call to change both properties at the same time.

I'm wondering whether the execution of all listeners is delayed until all properties have actually been changed.

Michael Goffioul <goffioul>
Project Member
Thu Jun 13 02:40:49 2013, original submission:

The code below should ultimately render 10 bars of random height.

The fltk toolkit only renders the first bar.

Ben Abbott <bpabbott>
Project Member


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

Attach File(s):

Attached Files
file #28315:  patch_demo.pdf added by bpabbott (123kB - application/pdf)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by hardy (Posted a comment)
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by goffioul (Posted a comment)
  • -unavailable- added by bpabbott (Submitted the item)

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

    Only project members can vote.


    Please enter the title of George Orwell's famous dystopian book (it's a date):



    Follow 12 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri Oct 11 00:57:05 2013rik5Severity4 - Important=>3 - Normal
    Fri Jun 14 07:52:48 2013bpabbottSummary{x,y,z,c}data properties are not independent=>patch {x,y,z,c}data properties are not independent
    Fri Jun 14 05:45:49 2013bpabbottCategoryPlotting with OpenGL=>Interpreter
      Severity3 - Normal=>4 - Important
      Item GroupIncorrect Result=>Matlab Compatibility
      Assigned tobpabbott=>None
      SummaryOpenGL: change to {x,y}data does not update bar()=>{x,y,z,c}data properties are not independent
    Fri Jun 14 05:41:10 2013bpabbottAttached File-=>Added patch_demo.pdf, #28315
    Thu Jun 13 05:31:58 2013bpabbottAssigned toNone=>bpabbott
    Thu Jun 13 05:31:57 2013bpabbottStatusNone=>In Progress
    Thu Jun 13 03:26:02 2013bpabbottSummaryfltk: change to {x,y}data does not update bar()=>OpenGL: change to {x,y}data does not update bar()
    Thu Jun 13 03:25:53 2013bpabbottSummarychange to {x,y}data does not update bar()=>fltk: change to {x,y}data does not update bar()

    Back to the top

    Powered by Savane 3.1-cleanup1