[ismrmrd] 30/177: Fixed nearly all GCC compiler warnings. Switched to c++0x standard.
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.
commit 9bdaab3d789667a584535a134ff35a8738eac044
Author: Souheil Inati <souheil.inati at nih.gov>
Date: Thu Aug 28 23:53:51 2014 -0400
Fixed nearly all GCC compiler warnings. Switched to c++0x standard.
---
CMakeLists.txt | 4 +-
ismrmrd_dataset.c | 207 +++++++++++++++++++++++++++++++++---------------------
2 files changed, 129 insertions(+), 82 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7cd6a95..a4b7367 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,8 +25,8 @@ if (WIN32)
set(CMAKE_STATIC_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
else (WIN32)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall")
endif (WIN32)
# required packages for main library
diff --git a/ismrmrd_dataset.c b/ismrmrd_dataset.c
index 90c42e8..53081ec 100644
--- a/ismrmrd_dataset.c
+++ b/ismrmrd_dataset.c
@@ -69,14 +69,18 @@ static char * make_path(const ISMRMRD_Dataset *dset, const char * var) {
}
static int delete_var(const ISMRMRD_Dataset *dset, const char *var) {
- herr_t status;
+ int status = ISMRMRD_NOERROR;
+ herr_t h5status;
char *path = make_path(dset, var);
if (link_exists(dset, path)) {
- status = H5Ldelete(dset->fileid, path, H5P_DEFAULT);
- // TODO handle errors
+ h5status = H5Ldelete(dset->fileid, path, H5P_DEFAULT);
+ if (h5status < 0) {
+ status = ISMRMRD_FILEERROR;
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to delete H5 path");
+ }
}
free(path);
- return ISMRMRD_NOERROR;
+ return status;
}
/*********************************************/
@@ -91,7 +95,10 @@ typedef struct HDF5_Acquisition
static hid_t get_hdf5type_xmlheader(void) {
hid_t datatype = H5Tcopy(H5T_C_S1);
- herr_t status = H5Tset_size(datatype, H5T_VARIABLE);
+ herr_t h5status = H5Tset_size(datatype, H5T_VARIABLE);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get XML header data type");
+ }
return datatype;
}
@@ -107,119 +114,136 @@ static hid_t get_hdf5type_double(void) {
static hid_t get_hdf5type_complexfloat(void) {
hid_t datatype;
- herr_t status;
+ herr_t h5status;
datatype = H5Tcreate(H5T_COMPOUND, sizeof(complex_float_t));
- status = H5Tinsert(datatype, "real", 0, H5T_NATIVE_FLOAT);
- status = H5Tinsert(datatype, "imag", sizeof(float), H5T_NATIVE_FLOAT);
+ h5status = H5Tinsert(datatype, "real", 0, H5T_NATIVE_FLOAT);
+ h5status = H5Tinsert(datatype, "imag", sizeof(float), H5T_NATIVE_FLOAT);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get complex float data type");
+ }
return datatype;
}
static hid_t get_hdf5type_complexdouble(void) {
hid_t datatype;
- herr_t status;
+ herr_t h5status;
datatype = H5Tcreate(H5T_COMPOUND, sizeof(complex_double_t));
- status = H5Tinsert(datatype, "real", 0, H5T_NATIVE_DOUBLE);
- status = H5Tinsert(datatype, "imag", sizeof(double), H5T_NATIVE_DOUBLE);
+ h5status = H5Tinsert(datatype, "real", 0, H5T_NATIVE_DOUBLE);
+ h5status = H5Tinsert(datatype, "imag", sizeof(double), H5T_NATIVE_DOUBLE);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get complex double data type");
+ }
return datatype;
}
static hid_t get_hdf5type_encoding(void) {
hid_t datatype;
- herr_t status;
+ herr_t h5status;
datatype = H5Tcreate(H5T_COMPOUND, sizeof(ISMRMRD_EncodingCounters));
- status = H5Tinsert(datatype, "kspace_encode_step_1", HOFFSET(ISMRMRD_EncodingCounters, kspace_encode_step_1), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "kspace_encode_step_2", HOFFSET(ISMRMRD_EncodingCounters, kspace_encode_step_2), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "average", HOFFSET(ISMRMRD_EncodingCounters, average), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "slice", HOFFSET(ISMRMRD_EncodingCounters, slice), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "contrast", HOFFSET(ISMRMRD_EncodingCounters, contrast), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "phase", HOFFSET(ISMRMRD_EncodingCounters, phase), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "repetition", HOFFSET(ISMRMRD_EncodingCounters, repetition), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "set", HOFFSET(ISMRMRD_EncodingCounters, set), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "segment", HOFFSET(ISMRMRD_EncodingCounters, segment), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "kspace_encode_step_1", HOFFSET(ISMRMRD_EncodingCounters, kspace_encode_step_1), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "kspace_encode_step_2", HOFFSET(ISMRMRD_EncodingCounters, kspace_encode_step_2), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "average", HOFFSET(ISMRMRD_EncodingCounters, average), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "slice", HOFFSET(ISMRMRD_EncodingCounters, slice), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "contrast", HOFFSET(ISMRMRD_EncodingCounters, contrast), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "phase", HOFFSET(ISMRMRD_EncodingCounters, phase), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "repetition", HOFFSET(ISMRMRD_EncodingCounters, repetition), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "set", HOFFSET(ISMRMRD_EncodingCounters, set), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "segment", HOFFSET(ISMRMRD_EncodingCounters, segment), H5T_NATIVE_UINT16);
hsize_t arraydims[] = {ISMRMRD_USER_INTS};
hid_t arraytype = H5Tarray_create(H5T_NATIVE_UINT16, 1, arraydims);
- status = H5Tinsert(datatype, "user", HOFFSET(ISMRMRD_EncodingCounters, user), arraytype);
+ h5status = H5Tinsert(datatype, "user", HOFFSET(ISMRMRD_EncodingCounters, user), arraytype);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get endoding data type");
+ }
H5Tclose(arraytype);
return datatype;
}
static hid_t get_hdf5type_acquisitionheader(void) {
hid_t datatype;
- herr_t status;
+ herr_t h5status;
hsize_t arraydims[1];
hid_t vartype;
datatype = H5Tcreate(H5T_COMPOUND, sizeof(ISMRMRD_AcquisitionHeader));
- status = H5Tinsert(datatype, "version", HOFFSET(ISMRMRD_AcquisitionHeader, version), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "flags", HOFFSET(ISMRMRD_AcquisitionHeader, flags), H5T_NATIVE_UINT64);
- status = H5Tinsert(datatype, " measurement_uid", HOFFSET(ISMRMRD_AcquisitionHeader, measurement_uid), H5T_NATIVE_UINT32);
- status = H5Tinsert(datatype, "scan_counter", HOFFSET(ISMRMRD_AcquisitionHeader, scan_counter), H5T_NATIVE_UINT32);
- status = H5Tinsert(datatype, "acquisition_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, acquisition_time_stamp), H5T_NATIVE_UINT32);
- status = H5Tinsert(datatype, "acquisition_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, acquisition_time_stamp), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "version", HOFFSET(ISMRMRD_AcquisitionHeader, version), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "flags", HOFFSET(ISMRMRD_AcquisitionHeader, flags), H5T_NATIVE_UINT64);
+ h5status = H5Tinsert(datatype, " measurement_uid", HOFFSET(ISMRMRD_AcquisitionHeader, measurement_uid), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "scan_counter", HOFFSET(ISMRMRD_AcquisitionHeader, scan_counter), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "acquisition_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, acquisition_time_stamp), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "acquisition_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, acquisition_time_stamp), H5T_NATIVE_UINT32);
arraydims[0] = ISMRMRD_PHYS_STAMPS;
vartype = H5Tarray_create(H5T_NATIVE_UINT32, 1, arraydims);
- status = H5Tinsert(datatype, "physiology_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, physiology_time_stamp), vartype);
+ h5status = H5Tinsert(datatype, "physiology_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, physiology_time_stamp), vartype);
- status = H5Tinsert(datatype, "number_of_samples", HOFFSET(ISMRMRD_AcquisitionHeader, number_of_samples), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "available_channels", HOFFSET(ISMRMRD_AcquisitionHeader, available_channels), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "active_channels", HOFFSET(ISMRMRD_AcquisitionHeader, active_channels), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "number_of_samples", HOFFSET(ISMRMRD_AcquisitionHeader, number_of_samples), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "available_channels", HOFFSET(ISMRMRD_AcquisitionHeader, available_channels), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "active_channels", HOFFSET(ISMRMRD_AcquisitionHeader, active_channels), H5T_NATIVE_UINT16);
arraydims[0] = ISMRMRD_CHANNEL_MASKS;
vartype = H5Tarray_create(H5T_NATIVE_UINT64, 1, arraydims);
- status = H5Tinsert(datatype, "channel_mask", HOFFSET(ISMRMRD_AcquisitionHeader, channel_mask), vartype);
+ h5status = H5Tinsert(datatype, "channel_mask", HOFFSET(ISMRMRD_AcquisitionHeader, channel_mask), vartype);
- status = H5Tinsert(datatype, "discard_pre", HOFFSET(ISMRMRD_AcquisitionHeader, discard_pre), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "discard_post", HOFFSET(ISMRMRD_AcquisitionHeader, discard_post), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "center_sample", HOFFSET(ISMRMRD_AcquisitionHeader, center_sample), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "encoding_space_ref", HOFFSET(ISMRMRD_AcquisitionHeader, encoding_space_ref), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "trajectory_dimensions", HOFFSET(ISMRMRD_AcquisitionHeader, trajectory_dimensions), H5T_NATIVE_UINT16);
- status = H5Tinsert(datatype, "sample_time_us", HOFFSET(ISMRMRD_AcquisitionHeader, sample_time_us), H5T_NATIVE_FLOAT);
+ h5status = H5Tinsert(datatype, "discard_pre", HOFFSET(ISMRMRD_AcquisitionHeader, discard_pre), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "discard_post", HOFFSET(ISMRMRD_AcquisitionHeader, discard_post), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "center_sample", HOFFSET(ISMRMRD_AcquisitionHeader, center_sample), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "encoding_space_ref", HOFFSET(ISMRMRD_AcquisitionHeader, encoding_space_ref), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "trajectory_dimensions", HOFFSET(ISMRMRD_AcquisitionHeader, trajectory_dimensions), H5T_NATIVE_UINT16);
+ h5status = H5Tinsert(datatype, "sample_time_us", HOFFSET(ISMRMRD_AcquisitionHeader, sample_time_us), H5T_NATIVE_FLOAT);
arraydims[0] = 3;
vartype = H5Tarray_create(H5T_NATIVE_FLOAT, 1, arraydims);
- status = H5Tinsert(datatype, "position", HOFFSET(ISMRMRD_AcquisitionHeader, position), vartype);
- status = H5Tinsert(datatype, "read_dir", HOFFSET(ISMRMRD_AcquisitionHeader, read_dir), vartype);
- status = H5Tinsert(datatype, "phase_dir", HOFFSET(ISMRMRD_AcquisitionHeader, phase_dir), vartype);
- status = H5Tinsert(datatype, "slice_dir", HOFFSET(ISMRMRD_AcquisitionHeader, slice_dir), vartype);
- status = H5Tinsert(datatype, "patient_table_position", HOFFSET(ISMRMRD_AcquisitionHeader, patient_table_position), vartype);
+ h5status = H5Tinsert(datatype, "position", HOFFSET(ISMRMRD_AcquisitionHeader, position), vartype);
+ h5status = H5Tinsert(datatype, "read_dir", HOFFSET(ISMRMRD_AcquisitionHeader, read_dir), vartype);
+ h5status = H5Tinsert(datatype, "phase_dir", HOFFSET(ISMRMRD_AcquisitionHeader, phase_dir), vartype);
+ h5status = H5Tinsert(datatype, "slice_dir", HOFFSET(ISMRMRD_AcquisitionHeader, slice_dir), vartype);
+ h5status = H5Tinsert(datatype, "patient_table_position", HOFFSET(ISMRMRD_AcquisitionHeader, patient_table_position), vartype);
vartype = get_hdf5type_encoding();
- status = H5Tinsert(datatype, "idx", HOFFSET(ISMRMRD_AcquisitionHeader, idx), vartype);
+ h5status = H5Tinsert(datatype, "idx", HOFFSET(ISMRMRD_AcquisitionHeader, idx), vartype);
arraydims[0] = ISMRMRD_USER_INTS;
vartype = H5Tarray_create(H5T_NATIVE_INT32, 1, arraydims);
- status = H5Tinsert(datatype, "user_int", HOFFSET(ISMRMRD_AcquisitionHeader, user_int), vartype);
+ h5status = H5Tinsert(datatype, "user_int", HOFFSET(ISMRMRD_AcquisitionHeader, user_int), vartype);
arraydims[0] = ISMRMRD_USER_FLOATS;
vartype = H5Tarray_create(H5T_NATIVE_FLOAT, 1, arraydims);
- status = H5Tinsert(datatype, "user_float", HOFFSET(ISMRMRD_AcquisitionHeader, user_float), vartype);
+ h5status = H5Tinsert(datatype, "user_float", HOFFSET(ISMRMRD_AcquisitionHeader, user_float), vartype);
/* Clean up */
H5Tclose(vartype);
-
+
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get acquisition data type");
+ }
+
return datatype;
}
static hid_t get_hdf5type_acquisition(void) {
hid_t datatype, vartype, vlvartype;
- herr_t status;
+ herr_t h5status;
datatype = H5Tcreate(H5T_COMPOUND, sizeof(HDF5_Acquisition));
vartype = get_hdf5type_acquisitionheader();
- status = H5Tinsert(datatype, "head", HOFFSET(HDF5_Acquisition, head), vartype);
+ h5status = H5Tinsert(datatype, "head", HOFFSET(HDF5_Acquisition, head), vartype);
vartype = get_hdf5type_float();
vlvartype = H5Tvlen_create(vartype);
- status = H5Tinsert(datatype, "traj", HOFFSET(HDF5_Acquisition, traj), vlvartype);
+ h5status = H5Tinsert(datatype, "traj", HOFFSET(HDF5_Acquisition, traj), vlvartype);
vartype = get_hdf5type_complexfloat();
vlvartype = H5Tvlen_create(vartype);
- status = H5Tinsert(datatype, "data", HOFFSET(HDF5_Acquisition, data), vlvartype);
+ h5status = H5Tinsert(datatype, "data", HOFFSET(HDF5_Acquisition, data), vlvartype);
H5Tclose(vartype);
H5Tclose(vlvartype);
-
+
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed get acquisition data type");
+ }
+
return datatype;
}
@@ -250,8 +274,8 @@ int ismrmrd_init_dataset(ISMRMRD_Dataset *dset, const char *filename, const char
int ismrmrd_open_dataset(ISMRMRD_Dataset *dset, const bool create_if_needed) {
// TODO add a mode for clobbering the dataset if it exists.
- hid_t fileid, filetype, memtype, space, daset;
- herr_t status;
+ hid_t fileid;
+ herr_t h5status;
/* Turn of HDF5 Errors */
/* TODO, this is bad. Maybe have it compile time dependent */
@@ -259,9 +283,9 @@ int ismrmrd_open_dataset(ISMRMRD_Dataset *dset, const bool create_if_needed) {
H5Eset_auto1(NULL, NULL);
/* Check if the file exists and is an HDF5 File */
- status = H5Fis_hdf5(dset->filename);
+ h5status = H5Fis_hdf5(dset->filename);
- if (status > 0) {
+ if (h5status > 0) {
/* Positive value for exists and is HDF5 */
/* Open it in readwrite mode */
fileid = H5Fopen(dset->filename, H5F_ACC_RDWR, H5P_DEFAULT);
@@ -274,7 +298,7 @@ int ismrmrd_open_dataset(ISMRMRD_Dataset *dset, const bool create_if_needed) {
return ISMRMRD_FILEERROR;
}
}
- else if (status == 0) {
+ else if (h5status == 0) {
/* Zero value for exists and is NOT HDF5 */
//TODO raise error
return ISMRMRD_FILEERROR;
@@ -309,13 +333,18 @@ int ismrmrd_open_dataset(ISMRMRD_Dataset *dset, const bool create_if_needed) {
int ismrmrd_close_dataset(ISMRMRD_Dataset *dset) {
- herr_t status;
+ herr_t h5status;
/* Check for a valid fileid before trying to close the file */
if (dset->fileid > 0) {
- status = H5Fclose (dset->fileid);
+ h5status = H5Fclose (dset->fileid);
dset->fileid = 0;
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to close dataset.");
+ return ISMRMRD_FILEERROR;
+ }
}
+
return ISMRMRD_NOERROR;
};
@@ -324,13 +353,13 @@ int ismrmrd_write_header(const ISMRMRD_Dataset *dset, const char *xmlstring) {
hid_t dataset, dataspace, datatype, props;
hsize_t dims[] = {1};
- herr_t status;
+ herr_t h5status;
/* The path to the xml header */
char *path = make_path(dset, "xml");
/* Delete the old header if it exists */
- status = delete_var(dset, "xml");
+ h5status = delete_var(dset, "xml");
/* Create a new dataset for the xmlstring */
/* i.e. create the memory type, data space, and data set */
@@ -343,22 +372,26 @@ int ismrmrd_write_header(const ISMRMRD_Dataset *dset, const char *xmlstring) {
/* We have to wrap the xmlstring in an array */
void *buff[1];
buff[0] = (void *) xmlstring; /* safe to get rid of const the type */
- status = H5Dwrite(dataset, datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, buff);
+ h5status = H5Dwrite(dataset, datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, buff);
/* Clean up */
- status = H5Pclose(props);
- status = H5Tclose(datatype);
- status = H5Sclose(dataspace);
- status = H5Dclose(dataset);
+ h5status = H5Pclose(props);
+ h5status = H5Tclose(datatype);
+ h5status = H5Sclose(dataspace);
+ h5status = H5Dclose(dataset);
+
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to write header.");
+ return ISMRMRD_FILEERROR;
+ }
return ISMRMRD_NOERROR;
};
char * ismrmrd_read_header(const ISMRMRD_Dataset *dset) {
- hid_t dataset, dataspace, datatype, props;
- hsize_t dims[] = {1};
- herr_t status;
+ hid_t dataset, datatype;
+ herr_t h5status;
char * xmlstring;
/* The path to the xml header */
@@ -369,7 +402,7 @@ char * ismrmrd_read_header(const ISMRMRD_Dataset *dset) {
datatype = get_hdf5type_xmlheader();
/* Read it into a 1D buffer*/
void *buff[1];
- status = H5Dread(dataset, datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, buff);
+ h5status = H5Dread(dataset, datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT, buff);
/* Unpack */
xmlstring = (char *) malloc(strlen(buff[0])+1);
@@ -380,12 +413,15 @@ char * ismrmrd_read_header(const ISMRMRD_Dataset *dset) {
}
/* Clean up */
- status = H5Pclose(props);
- status = H5Tclose(datatype);
- status = H5Sclose(dataspace);
- status = H5Dclose(dataset);
+ h5status = H5Tclose(datatype);
+ h5status = H5Dclose(dataset);
free(path);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to read header.");
+ return NULL;
+ }
+
return xmlstring;
}
else {
@@ -412,8 +448,11 @@ unsigned long ismrmrd_get_number_of_acquisitions(const ISMRMRD_Dataset *dset) {
dataspace = H5Dget_space(dataset);
h5status = H5Sget_simple_extent_dims(dataspace, dims, maxdims);
numacq = dims[0];
- H5Sclose(dataspace);
- H5Dclose(dataset);
+ h5status = H5Sclose(dataspace);
+ h5status= H5Dclose(dataset);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to get number of acquisitions.");
+ }
}
else {
/* none */
@@ -482,7 +521,6 @@ int ismrmrd_append_acquisition(const ISMRMRD_Dataset *dset, const ISMRMRD_Acquis
/* Write it */
h5status = H5Dwrite (dataset, datatype, memspace, filespace, H5P_DEFAULT, hdf5acq);
- /* TODO error check */
/* Clean up */
h5status = H5Tclose(datatype);
@@ -492,6 +530,11 @@ int ismrmrd_append_acquisition(const ISMRMRD_Dataset *dset, const ISMRMRD_Acquis
h5status = H5Dclose(dataset);
free(path);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to append acquisitions.");
+ return ISMRMRD_FILEERROR;
+ }
+
return ISMRMRD_NOERROR;
};
@@ -535,10 +578,14 @@ int ismrmrd_read_acquisition(const ISMRMRD_Dataset *dset, unsigned long index, I
h5status = H5Sclose(filespace);
h5status = H5Sclose(memspace);
h5status = H5Dclose(dataset);
+ if (h5status < 0) {
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Failed to read acquisition.");
+ return ISMRMRD_FILEERROR;
+ }
}
else {
/* index out of range */
- /* TODO throw an error */
+ ISMRMRD_THROW(ISMRMRD_FILEERROR, "Acquisition index out of range.");
return ISMRMRD_FILEERROR;
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git
More information about the debian-science-commits
mailing list