SDTSRasterReader *SDTSTransfer::GetLayerRasterReader( int iEntry ) { SDTSRasterReader *poRasterReader; if( iEntry < 0 || iEntry >= nLayers || oCATD.GetEntryType( panLayerCATDEntry[iEntry] ) != SLTRaster ) { return NULL; } poRasterReader = new SDTSRasterReader(); if( !poRasterReader->Open( &oCATD, &oIREF, oCATD.GetEntryModule(panLayerCATDEntry[iEntry] ) ) ) { delete poRasterReader; return NULL; } else { return poRasterReader; } }
SDTSRasterReader *SDTSTransfer::GetLayerRasterReader( int iEntry ) { if( iEntry < 0 || iEntry >= nLayers || oCATD.GetEntryType( panLayerCATDEntry[iEntry] ) != SLTRaster ) { return nullptr; } SDTSRasterReader *poRasterReader = new SDTSRasterReader(); if( !poRasterReader->Open( &oCATD, &oIREF, oCATD.GetEntryModule(panLayerCATDEntry[iEntry] ) ) ) { panLayerCATDEntry[iEntry] = SLTUnknown; // to prevent further attempt delete poRasterReader; return nullptr; } return poRasterReader; }