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 13 Jun 2013 02:40:49 AM UTC  
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 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 20 Nov 2016 10:44:35 PM UTC, 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 10 Oct 2013 11:27:44 PM UTC, 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 10 Oct 2013 10:34:32 PM UTC, 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 10 Oct 2013 10:23:09 PM UTC, comment #12:

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

Ben Abbott <bpabbott>
Project Member
Thu 10 Oct 2013 10:13:29 PM UTC, 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 14 Jun 2013 07:52:48 AM UTC, 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 14 Jun 2013 05:45:49 AM UTC, 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 14 Jun 2013 05:41:10 AM UTC, 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 14 Jun 2013 01:06:55 AM UTC, 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 13 Jun 2013 01:45:43 PM UTC, 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 13 Jun 2013 12:28:37 PM UTC, 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 13 Jun 2013 10:56:58 AM UTC, 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 13 Jun 2013 05:31:58 AM UTC, 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 13 Jun 2013 03:25:11 AM UTC, 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 13 Jun 2013 03:11:52 AM UTC, 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 13 Jun 2013 02:40:49 AM UTC, 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 (123KiB - 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 11 Oct 2013 12:57:05 AM UTCrik5Severity4 - Important=>3 - Normal
    Fri 14 Jun 2013 07:52:48 AM UTCbpabbottSummary{x,y,z,c}data properties are not independent=>patch {x,y,z,c}data properties are not independent
    Fri 14 Jun 2013 05:45:49 AM UTCbpabbottCategoryPlotting 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 14 Jun 2013 05:41:10 AM UTCbpabbottAttached File-=>Added patch_demo.pdf, #28315
    Thu 13 Jun 2013 05:31:58 AM UTCbpabbottAssigned toNone=>bpabbott
    Thu 13 Jun 2013 05:31:57 AM UTCbpabbottStatusNone=>In Progress
    Thu 13 Jun 2013 03:26:02 AM UTCbpabbottSummaryfltk: change to {x,y}data does not update bar()=>OpenGL: change to {x,y}data does not update bar()
    Thu 13 Jun 2013 03:25:53 AM UTCbpabbottSummarychange 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