Norman,

Thanks. This confirms that you are not using dynamic drivers. This
explains why your fix works for you and coincides with my experiments.
Just one further confirmation - were you closing the plplot window using
the close button (X) on the window, or by pressing return / 'Q'?

Your testing is really useful here since there are lots of different build
options / paths through the code, even for simple examples. We have a
pretty comprehensive set of tests, but it is hard for us to cover
everything. For example, when running the interactive tests I always use
return to move on to the next page so I'd not spotted this bug before.
You've definitely highlighted one xwin driver bug - I just need to work
out the best way to fix it. I just want to be sure there is nothing else
lurking behind it.

Thanks

Andrew

On Wed, Mar 18, 2015 at 09:20:29PM -0700, Norman Goldstein wrote:
> Sorry, I just got back in ...
> OK, I certainly bow to your more extensive insight to the plplot big
> picture.
> For the record, here is how I configured plolot:
> 
> cmake -DENABLE_ocaml=OFF -DCMAKE_BUILD_TYPE=Debug. -DBUILD_TEST=ON  .
> 
> Attached, is the cmake log.
> I see that the default is    ENABLE_DYNDRIVERS:    OFF
> 
> I disabled ocaml to avoid circular soft-linking that was breaking the build.
>  I ran examples/c++/x00.cpp  to do my testing, for xw, psc and svg, for the
> two cases of interactively typing in the device number, and of supplying
> the -dev swtich on the command line.
> 
> When I was first running on the downloaded code, I set a breakpoint
> on plD_tidy_xw, and it was never hit.  That is what started me going
> down the path I took.  Here are the results of "make test", that I just
> ran on my patched branch:
> 
> Running tests...
> Test project /home/transient/systems/PLPLOT/plplot.git
>       Start  1: examples_c
>  1/18 Test  #1: examples_c .......................   Passed 14.57 sec
>       Start  2: examples_cxx
>  2/18 Test  #2: examples_cxx .....................   Passed 14.87 sec
>       Start  3: examples_f95
>  3/18 Test  #3: examples_f95 .....................   Passed 5.13 sec
>       Start  4: examples_octave
>  4/18 Test  #4: examples_octave ..................   Passed 7.60 sec
>       Start  5: examples_python
>  5/18 Test  #5: examples_python ..................   Passed 19.39 sec
>       Start  6: examples_svg
>  6/18 Test  #6: examples_svg .....................   Passed 16.68 sec
>       Start  7: examples_pscairo
>  7/18 Test  #7: examples_pscairo .................***Failed 0.20 sec
>       Start  8: examples_pngcairo
>  8/18 Test  #8: examples_pngcairo ................***Failed 0.09 sec
>       Start  9: examples_xfig
> *** Error in `/home/transient/systems/PLPLOT/plplot.git/examples/c/x00c':
> double free or corruption (!prev): 0x0000000001e0d500 **
> ...... Lots of lines------------------
>  9/18 Test  #9: examples_xfig ....................***Failed 0.05 sec
>       Start 10: examples_bmpqt
> 10/18 Test #10: examples_bmpqt ...................***Failed 0.89 sec
>       Start 11: examples_jpgqt
> 11/18 Test #11: examples_jpgqt ...................***Failed 0.49 sec
>       Start 12: examples_pngqt
> 12/18 Test #12: examples_pngqt ...................***Failed 0.62 sec
>       Start 13: examples_ppmqt
> 13/18 Test #13: examples_ppmqt ...................***Failed 0.61 sec
>       Start 14: examples_tiffqt
> 14/18 Test #14: examples_tiffqt ..................***Failed 0.51 sec
>       Start 15: examples_svgqt
> 15/18 Test #15: examples_svgqt ...................***Failed 0.53 sec
>       Start 16: examples_epsqt
> 16/18 Test #16: examples_epsqt ...................***Failed 0.62 sec
>       Start 17: examples_pdfqt
> 17/18 Test #17: examples_pdfqt ...................***Failed 0.57 sec
>       Start 18: examples_compare
> 18/18 Test #18: examples_compare .................   Passed 0.27 sec
> 
> 39% tests passed, 11 tests failed out of 18
> 
> Total Test time (real) =  83.71 sec
> The following tests FAILED:
>           7 - examples_pscairo (Failed)
>           8 - examples_pngcairo (Failed)
>           9 - examples_xfig (Failed)
>          10 - examples_bmpqt (Failed)
>          11 - examples_jpgqt (Failed)
>          12 - examples_pngqt (Failed)
>          13 - examples_ppmqt (Failed)
>          14 - examples_tiffqt (Failed)
>          15 - examples_svgqt (Failed)
>          16 - examples_epsqt (Failed)
>          17 - examples_pdfqt (Failed)
> 
> Cheers,
> Norm
> 
> On 03/18/2015 07:15 PM, Alan W. Irwin wrote:
> >On 2015-03-18 23:39-0000 Andrew Ross wrote:
> >
> >>I'm a little uneasy about applying this patch so late in the release
> >>cycle
> >>in case there are any unforseen consequences. The current situation will
> >>result in a memory leak when closing the window with the button, but
> >>since
> >>this is on exit anyway it should not be too serious.
> >
> >OK, Andrew. If you are uneasy about even this small a patch let's
> >leave it for now and consider what to do about all the plend issues we
> >currently have for a variety of device drivers after the release.
> >
> >Thanks for looking at this particular xwin plend issue.
> >
> >Alan
> >__________________________
> >Alan W. Irwin
> >
> >Astronomical research affiliation with Department of Physics and
> >Astronomy,
> >University of Victoria (astrowww.phys.uvic.ca).
> >
> >Programming affiliations with the FreeEOS equation-of-state
> >implementation for stellar interiors (freeeos.sf.net); the Time
> >Ephemerides project (timeephem.sf.net); PLplot scientific plotting
> >software package (plplot.sf.net); the libLASi project
> >(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
> >and the Linux Brochure Project (lbproject.sf.net).
> >__________________________
> >
> >Linux-powered Science
> >__________________________
> >
> 

> -- Explicitly setting policy CMP0022 to OLD
> -- Explicitly setting policy CMP0023 to OLD
> -- CMake version = 2.8.12.2
> -- CMAKE_SYSTEM_NAME = Linux
> -- SH_EXECUTABLE = /usr/bin/bash
> -- Checking whether system has ANSI C header files
> -- ANSI C header files - found
> -- SWIG_VERSION = 2.0.11
> -- Looking for pkg-config - found
> -- X11_FOUND = 1
> -- X11_INCLUDE_DIR = /usr/include
> -- X11_COMPILE_FLAGS = -I/usr/include
> -- X11_LIBRARIES = 
> /usr/lib64/libSM.so;/usr/lib64/libICE.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so
> -- NOTICE: Found: /usr/bin/gfortran
> -- PYTHON_VERSION = 2.7.5
> -- Building Python binding with plsmem() support
> -- OCTAVE = /usr/bin/octave
> -- MKOCTFILE = /usr/bin/mkoctfile
> -- OCTAVE_CONFIG = /usr/bin/octave-config
> -- OCTAVE_VERSION = 3.6.4
> -- OCTAVE_LIBRARIES = /usr/lib64/octave/3.6.4/liboctave.so
> -- OCTINTERP_LIBRARIES = /usr/lib64/octave/3.6.4/liboctinterp.so
> -- OCTAVE_INCLUDE_PATH = 
> /usr/include;/usr/include/octave-3.6.4;/usr/include/octave-3.6.4/octave
> -- PLPLOT_OCTAVE_DIR = /usr/local/share/plplot_octave
> -- OCTAVE_M_DIR = /usr/local/share/octave/site/m
> -- OCTAVE_OCT_DIR = /usr/local/lib/octave
> -- WARNING: ENABLE_tcl is OFF so disabling everything else that is Tcl/Tk 
> related
> -- FindShapelib: Found shapelib header directory, /usr/include, and library, 
> /usr/lib64/libshp.so.
> -- FindQHull: Found both qhull_a.h and libqhull.a
> -- QHULL_INCLUDE_DIRS = /usr/include
> -- QHULL_LIBRARIES = /usr/lib64/libqhull.so
> -- QHULL_RPATH = 
> -- checking for module 'pango'
> --   found pango, version 1.36.1
> -- checking for module 'pangoft2'
> --   found pangoft2, version 1.36.1
> -- checking for module 'pangocairo'
> --   found pangocairo, version 1.36.1
> -- TKLIB_COMPILE_FLAGS = -I"TK_INCLUDE_PATH-NOTFOUND"
> -- NP_QT_COMPILE_DEFINITIONS = QT_SVG_LIB;QT_GUI_LIB;QT_CORE_LIB
> -- QT_COMPILE_DEFINITIONS = -DQT_SVG_LIB;-DQT_GUI_LIB;-DQT_CORE_LIB
> -- NP_QT_INCLUDE_DIRECTORIES = 
> /usr/include;/usr/include/QtSvg;/usr/include/QtGui;/usr/include/QtCore
> -- QT_INCLUDE_DIRECTORIES = -isystem /usr/include;-isystem 
> /usr/include/QtSvg;-isystem /usr/include/QtGui;-isystem /usr/include/QtCore
> -- pc_qt_COMPILE_FLAGS = -I/usr/include -I/usr/include/QtSvg 
> -I/usr/include/QtGui -I/usr/include/QtCore
> -- wxWidgets found
> -- wxwidgets_COMPILE_FLAGS = -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 
> -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ 
> -- wxwidgets_LINK_FLAGS = 
> -pthread;-Wl,-z,relro;/usr/lib64/libwx_baseu-2.8.so;/usr/lib64/libwx_gtk2u_core-2.8.so
> -- RT_LIB = /usr/lib64/librt.so
> -- WARNING:ENABLE_ocaml is OFF so disabling Plcairo module and lablgtk2 
> support
> -- validate target will be available to check for syntax issues in the PLplot 
> DocBook documentation using /usr/bin/env SP_CHARSET_FIXED=yes SP_ENCODING=xml 
> /usr/bin/onsgmls.
> libplplot_LINK_FLAGS = 
> /usr/lib64/libpangocairo-1.0.so;/usr/lib64/libpango-1.0.so;/usr/lib64/libgobject-2.0.so;/usr/lib64/libglib-2.0.so;/usr/lib64/libcairo.so;/usr/lib64/libSM.so;/usr/lib64/libICE.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so;/usr/lib64/libSM.so;/usr/lib64/libICE.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so;/usr/lib64/libpthread.so;-pthread;-Wl,-z,relro;/usr/lib64/libwx_baseu-2.8.so;/usr/lib64/libwx_gtk2u_core-2.8.so;optimized;/usr/lib64/libQtSvg.so;debug;/usr/lib64/libQtSvg_debug.so;optimized;/usr/lib64/libQtGui.so;debug;/usr/lib64/libQtGui_debug.so;optimized;/usr/lib64/libQtCore.so;debug;/usr/lib64/libQtCore_debug.so;/usr/lib64/libm.so;/usr/lib64/libshp.so;-lcsirocsa;-lcsironn;-lqhull;-lqsastime
> -- Determine compile and link flags for extXdrawable_demo
> -- checking for module 'gtk+-x11-2.0'
> --   found gtk+-x11-2.0, version 2.24.27
> -- Determine compile and link flags for ext-cairo-test
> -- checking for module 'cairo'
> --   found cairo, version 1.14.0
> -- WARNING: The test_octave_xcairo target can be run independently but does 
> not
>    work reliably so it is temporarily excluded from being a dependency of 
> other
>    more general interactive test targets
> -- WARNING: The test_octave_qtwidget target can be run independently but does 
> not
>    work reliably so it is temporarily excluded from being a dependency of 
> other
>    more general interactive test targets
> -- WARNING: The test_c_wxwidgets target can be run independently on 
>    the Unix platform, but it generates "forced mousing" screen
>    refreshes for the wxwidgets-3.0.0 case so it is temporarily
>    excluded from being a dependency of other more general interactive
>    test targets
> -- WARNING: The test_octave_wxwidgets target can be run independently but 
> does not
>    work reliably so it is temporarily excluded from being a dependency of 
> other
>    more general interactive test targets
> -- WARNING: The test_octave_xwin target can be run independently but does not
>    work reliably so it is temporarily excluded from being a dependency of 
> other
>    more general interactive test targets
> -- WARNING: The test_wxPLplotDemo target can be run independently on 
>    the Unix platform, but it generates "forced mousing" screen
>    refreshes for the wxwidgets-3.0.0 case so it is temporarily
>    excluded from being a dependency of other more general interactive
>    test targets
> -- TEST_ENVIRONMENT = 
> EXAMPLES_DIR=/home/transient/systems/PLPLOT/plplot.git/examples 
> SRC_EXAMPLES_DIR=/home/transient/systems/PLPLOT/plplot.git/examples 
> OUTPUT_DIR=/home/transient/systems/PLPLOT/plplot.git/ctest_examples_output_dir
>  VC_CTEST_DIRECTORY=
> 
> Summary of CMake build system results for PLplot
> 
> Install location variables which can be set by the user:
> CMAKE_INSTALL_PREFIX:      /usr/local
> CMAKE_INSTALL_EXEC_PREFIX  /usr/local
> CMAKE_INSTALL_BINDIR     /usr/local/bin
> CMAKE_INSTALL_DATADIR            /usr/local/share
> CMAKE_INSTALL_LIBDIR     /usr/local/lib
> CMAKE_INSTALL_INCLUDEDIR   /usr/local/include
> CMAKE_INSTALL_INFODIR            /usr/local/share/info
> CMAKE_INSTALL_MANDIR     /usr/local/share/man
> 
> Derived install location variables:
> DATA_DIR      /usr/local/share/plplot5.10.0
> LIB_DIR               /usr/local/lib
> INCLUDE_DIR   /usr/local/include/plplot
> BIN_DIR               /usr/local/bin
> TCL_DIR               /usr/local/share/plplot5.10.0/tcl
> ADA_INCLUDE_DIR       /usr/local/share/ada/adainclude/plplotada
> ADA_LIB_DIR   /usr/local/lib/ada/adalib/plplotada
> PYTHON_INSTDIR        /usr/local/lib64/python2.7/site-packages
> DRV_DIR               /usr/local/lib/plplot5.10.0/drivers
> DOC_DIR               /usr/local/share/doc/plplot
> MAN_DIR               /usr/local/share/man
> INFO_DIR      /usr/local/share/info
> 
> Other important CMake variables:
> 
> CMAKE_SYSTEM_NAME:    Linux
> UNIX:                 1
> WIN32:                        
> APPLE:                        
> MSVC:                         (MSVC_VERSION:  )
> MINGW:                        
> MSYS:                 
> CYGWIN:                       
> BORLAND:              
> WATCOM:                 
> 
> SWIG_FOUND:           1
> PERL_FOUND:           TRUE
> X11_FOUND:            1
> 
> CMAKE_BUILD_TYPE:     Debug
> CMAKE_C_COMPILER CMAKE_C_FLAGS:                       /usr/bin/cc 
> CMAKE_CXX_COMPILER CMAKE_CXX_FLAGS:           /usr/bin/c++ 
> CMAKE_Fortran_COMPILER CMAKE_Fortran_FLAGS:   /usr/bin/gfortran 
> Target Fortran:       
> PYTHON_EXECUTABLE:                            /usr/bin/python
> PYTHON_INCLUDE_PATH:                          /usr/include/python2.7
> PYTHON_LIBRARIES:                             /usr/lib64/libpython2.7.so
> NUMPY_INCLUDE_PATH:                           
> /usr/lib64/python2.7/site-packages/numpy/core/include/numpy
> 
> ENABLE_DYNDRIVERS:    OFF
> DRIVERS_LIST: cairo;qt;mem;null;ps;svg;wxwidgets;xfig;xwin
> DEVICES_LIST: 
> memcairo;extcairo;pdfcairo;pngcairo;pscairo;epscairo;svgcairo;xcairo;epsqt;pdfqt;qtwidget;bmpqt;jpgqt;pngqt;ppmqt;tiffqt;extqt;memqt;svgqt;mem;null;ps;svg;wxwidgets;xfig;xwin
> 
> Library options:
> BUILD_SHARED_LIBS:    ON              PL_DOUBLE:      ON
> 
> Optional libraries:
> PL_HAVE_QHULL:                ON              WITH_CSA:       ON
> PL_HAVE_FREETYPE:                     PL_HAVE_PTHREAD:        ON
> HAVE_AGG:                             HAVE_SHAPELIB:  ON
> 
> Language Bindings:
> ENABLE_ada:           OFF
> ENABLE_cxx:           ON
> ENABLE_d:             OFF
> ENABLE_f95:           ON
> ENABLE_java:          OFF
> ENABLE_lua:           OFF
> ENABLE_ocaml:         OFF
> ENABLE_octave:                ON
> ENABLE_pdl:           OFF
> ENABLE_python:                ON
> ENABLE_qt:            ON
> ENABLE_pyqt4:         OFF
> ENABLE_tcl:           OFF
> ENABLE_itcl:          OFF
> ENABLE_tk:            OFF
> ENABLE_itk:           OFF
> ENABLE_wxwidgets:     ON
> 
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /home/transient/systems/PLPLOT/plplot.git


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to