From: Bernard W. <Ber...@wa...> - 2002-03-04 20:26:22
|
Hi, For my personal use I needed to have an Ada binding to the Plplot 5.0.3 plotting library. So I developped such a binding with a reduced set of interface functions. As a small contribution to the overall product I send this binding with 2 simple testing programs that perhaps you will find interesting for somebody else. Feel free to use them as you wish. While porting the Plplot core source on another UNIX computer, I found a small bug in the stripchart management, in the c_plstripa() function, which produces a SIGSEGV error. The context of the error is at line 252 of file plstripc.c: plcol(stripc->colline[p]); pllsty(stripc->styline[p]); plP_movwor(stripc->x[p][stripc->npts[p]-2], stripc->y[p][stripc->npts[p]-2]); <----------- here plP_drawor(stripc->x[p][stripc->npts[p]-1], stripc->y[p][stripc->npts[p]-1]); plflush(); For the first call to the c_plstripa function, stripc->npts[p]-2 value is -1 and generates an out of bound access in table stripc->x[p]. I personally replaced the line: plP_movwor(stripc->x[p][stripc->npts[p]-2], stripc->y[p][stripc->npts[p]-2]); by: if ((stripc->npts[p]-2) < 0) plP_movwor(0.0, 0.0) ; else plP_movwor(stripc->x[p][stripc->npts[p]-2], stripc->y[p][stripc-npts[p]-2]); I hope this will help. |
From: Alan W. I. <ir...@be...> - 2002-03-05 20:55:46
|
Hello Bernard: Thank you for your c_plstripa bug report below which should be dealt with separately. Also, thank you for your efforts in making an Ada front-end or binding to PLplot which I will respond to here. I have checked with the other plplot core developers, and it seems that none of us have experience with Ada. Therefore, we would have difficulty maintaining your contribution. I think the best thing to do in a case like this is for you to establish an independent Ada front-end project for PLplot. One example of this sort of approach is yplot, which is the Yorick front end to PLplot. yplot, which I help to independently maintain, has its own web site (yplot.sf.net), developer page, and release schedule, and most importantly any change to yplot does not back-react on to PLplot. If you decide to take this independent approach for your Ada front end of Plplot, I would highly recommend applying to sourceforge.net to provide facilities for your project. BTW, we no longer support PLplot version 5.0.3. The stable release that we support instead is 5.1.0 (see the announcement at http://plplot.sourceforge.net/announce-plplot-5.1.0.html). Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Mon, 4 Mar 2002, Bernard WEISSER wrote: > Hi, > > For my personal use I needed to have an Ada binding to the Plplot 5.0.3 > plotting library. So I developped such a binding with a reduced set of > interface functions. > > As a small contribution to the overall product I send this binding with > 2 simple testing programs that perhaps you will find interesting for > somebody else. Feel free to use them as you wish. > > While porting the Plplot core source on another UNIX computer, I found a > small bug in the stripchart management, in the c_plstripa() function, > which produces a SIGSEGV error. The context of the error is at line 252 > of file plstripc.c: > > plcol(stripc->colline[p]); pllsty(stripc->styline[p]); > plP_movwor(stripc->x[p][stripc->npts[p]-2], > stripc->y[p][stripc->npts[p]-2]); <----------- here > plP_drawor(stripc->x[p][stripc->npts[p]-1], > stripc->y[p][stripc->npts[p]-1]); > plflush(); > > For the first call to the c_plstripa function, stripc->npts[p]-2 value > is -1 and generates an out of bound access in table stripc->x[p]. > > I personally replaced the line: > > plP_movwor(stripc->x[p][stripc->npts[p]-2], > stripc->y[p][stripc->npts[p]-2]); > > by: > > if ((stripc->npts[p]-2) < 0) > plP_movwor(0.0, 0.0) ; > else > plP_movwor(stripc->x[p][stripc->npts[p]-2], > stripc->y[p][stripc-npts[p]-2]); > > I hope this will help. |