A new plotting problem

John W. Eaton jwe at bevo.che.wisc.edu
Wed Oct 1 13:12:30 CDT 2008


On  1-Oct-2008, Michael D. Godfrey wrote:

| Since the updates of 30 Sept, plotting dies at line 329 of
| __go_draw_axes__.m.  The error message is:
| error: structure has no member `facecolor'
| error: evaluating argument list element number 1
| error: called from:
| error:   /usr/local/share/octave/3.1.51+/m/plot/__go_draw_axes__.m at 
| line 332, column 20
| error:   /usr/local/share/octave/3.1.51+/m/plot/__go_draw_figure__.m at 
| line 63, column 8
| error:   /usr/local/share/octave/3.1.51+/m/plot/gnuplot_drawnow.m at 
| line 68, column 5
| octave:2>
| 
| The failing lines are:
|       doing_interp_color = strncmp (obj.facecolor, "interp", 6);
|      if (doing_interp_color)
| 
| The patch of replacing these lines by:
| if(0)
| 
| works as a test, but not a real fix.

The problem here is that obj could be something that doesn't have a
facecolor.  I fixed this problem earlier today by changing that line
to be

  doing_interp_color = ...
    isfield (obj, "facecolor") && strncmp (obj.facecolor, "interp", 6);

| Also note that the error messages references line 332, but the failing 
| line is 329.

Yeah, the line number caching in the parser could use some work.

jwe


More information about the Bug-octave mailing list