From edb975b07daca23af35014528d1992c5b90b1807 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 30 May 2016 01:56:46 -0500 Subject: [PATCH] created a stim::envi default constructor and fixed a seg fault when an unopened file is closed --- stim/envi/envi.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/stim/envi/envi.h b/stim/envi/envi.h index 305540f..ff73a1c 100644 --- a/stim/envi/envi.h +++ b/stim/envi/envi.h @@ -61,6 +61,11 @@ class envi{ public: + /// Default constructor + envi(){ + file = NULL; //set the file pointer to NULL + } + envi_header header; void* malloc_spectrum(){ @@ -979,12 +984,13 @@ public: } /// Closes the ENVI file. - bool close(){ + void close(){ + if(file == NULL) return; if(header.interleave == envi_header::BSQ){ if(header.data_type ==envi_header::float32) - return ((bsq*)file)->close(); + ((bsq*)file)->close(); else if(header.data_type == envi_header::float64) - return ((bsq*)file)->close(); + ((bsq*)file)->close(); else{ std::cout<<"ERROR: unidentified data type"<*)file)->close(); + ((bil*)file)->close(); else if(header.data_type == envi_header::float64) - return ((bil*)file)->close(); + ((bil*)file)->close(); else{ std::cout<<"ERROR: unidentified data type"<*)file)->close(); + ((bip*)file)->close(); else if(header.data_type == envi_header::float64) - return ((bip*)file)->close(); + ((bip*)file)->close(); else{ std::cout<<"ERROR: unidentified data type"<