Changes between Initial Version and Version 4 of Ticket #850


Ignore:
Timestamp:
Jul 15, 2008, 3:55:11 AM (16 years ago)
Author:
Mateusz Łoskot
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #850

    • Property Cc Mateusz Łoskot added
    • Property Keywords ecw added
  • Ticket #850 – Description

    initial v4  
    1 {{{
    21Hi,
    32
    4 I'm using a gdal cvs checkout from last week, the last ECW sources and MrSID
    5 libraries. I've compiled the gdal and
    6 
    7 ecw library with /MDd option.
     3I'm using a gdal cvs checkout from last week, the last ECW sources and MrSID libraries. I've compiled the gdal and ecw library with /MDd option.
    84
    95Description:
     6
    107 * When I try to close a ecw or mrsid file, GDALClose function crashes.
    118
    129Reproduction:
    13  * The call is  like : GDALClose(theDataset); // theDataSet is a GDALDatasetH
    14 pointer.
     10
     11 * The call is  like : GDALClose(theDataset); // theDataSet is a GDALDatasetH pointer.
    1512
    1613Causes:
    17  * ECW case: When GDALClose calls "delete poDS;" this calls the ECWDataset
    18 destructor. In this method, the "delete
    1914
    20 poFileView;" call crash.
    21    If I comment the next piece of code:
     15 * ECW case: When GDALClose calls "delete poDS;" this calls the ECWDataset destructor. In this method, the "delete poFileView;" call crash.
     16
     17If I comment the next piece of code:
     18{{{
    2219   //    if( poFileView != NULL )
    2320   //    {
    24    //        poUnderlyingIOStream = ((VSIIOStream *)(poFileView->GetStream()));
     21   //        poUnderlyingIOStream = ((VSIIOStream* (poFileView->GetStream()));
    2522   //        delete poFileView;
    2623   //    }
    27 
     24}}}
    2825   not crash but there are memory leaks, of course, :-)
    2926
    30  * MrSID case: When GDALClose calls "delete poDS;" this calls the MrSIDDataset
    31 destructor. In this method, various
    32 
    33 deletes crashes:
    34 
     27 * MrSID case: When GDALClose calls "delete poDS;" this calls the MrSIDDataset destructor. In this method, various deletes crashes:
     28{{{
    3529    if ( poImageReader && !bIsOverview )
    3630        delete poImageReader;
     
    4539        CPLFree( papoOverviewDS );
    4640    }
     41}}}
    4742
    48     and also crash in MrSIDRasterBand destructor:
     43and also crash in MrSIDRasterBand destructor:
     44{{{   
    4945    if ( poPixel )
    5046        delete poPixel;
     47}}}
    5148
    52     If I comment all those lines all works correctly but also there are memory
    53 leaks like the case of ecw.
     49If I comment all those lines all works correctly but also there are memory leaks like the case of ecw.
    5450
    5551Thanks a lot.
    56 }}}