From: Jim D. <ji...@di...> - 2006-06-24 17:42:39
|
Hazen Babcock <hba...@ma...> writes: > On Jun 19, 2006, at 12:25 AM, Jim Dishaw wrote: > > After applying these patches I can now compile CVS plplot on debian. > In testing the gcw driver however, I found: > > Ex. 1) Segfault after briefly flashing the plot on the screen. > Ex. 2) Blotches of color on page 1. > Ex. 3) Appeared normal. > Ex. 4) Multiple large solid red rectangles. > > Thoughts on where to look first? > > -Hazen Found the problem. I created the patch of the wrong version of plbuf.c that had a bug (obviously). I was using the full size of the plot buffer when creating the state buffer, which would result in wasted memory since the plot buffer is generally not full. I changed to the code to use the current size of the plot buffer and created the patch. Unfortunately, I had left one line of the old method (full buffer size). Here is the patch. Let me know if that fixes the problem. --- /home/jim/tmp/plbuf.c 2006-06-19 00:11:42.000000000 -0400 +++ /mnt/media/software/source/scientific/plplot-cvs/src/plbuf.c 2006-06-24 13:33:09.000000000 -0400 @@ -1085,7 +1085,7 @@ /* Create a pointer that points in the space we allocated after struct _state */ plot_state->plbuf_buffer = (void *)buf; - buf += pls->plbuf_buffer_size; + buf += pls->plbuf_top; /* Copy the plot buffer to our new buffer. Again, I must stress, that we only * are copying the portion of the plot buffer that is being used @@ -1217,4 +1217,4 @@ plbuf_restore(pls, new_state); return (void *) prev_state; -} \ No newline at end of file +} |