summaryrefslogtreecommitdiffstats
path: root/java/src/jni/h5util.c
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/jni/h5util.c')
-rw-r--r--java/src/jni/h5util.c61
1 files changed, 31 insertions, 30 deletions
diff --git a/java/src/jni/h5util.c b/java/src/jni/h5util.c
index f9bd291..acf57c8 100644
--- a/java/src/jni/h5util.c
+++ b/java/src/jni/h5util.c
@@ -2634,49 +2634,50 @@ Java_hdf_hdf5lib_H5_H5export_1dataset
h5nullArgument(env, "HDF5Library_export_data: object_path is NULL");
} /* end else if */
else {
- PIN_JAVA_STRING0(file_name, fileName);
+ PIN_JAVA_STRING(file_name, fileName);
+ if (fileName != NULL) {
+ file_id = H5Fopen(fileName, (unsigned)H5F_ACC_RDWR, (hid_t)H5P_DEFAULT);
- file_id = H5Fopen(fileName, (unsigned)H5F_ACC_RDWR, (hid_t)H5P_DEFAULT);
+ UNPIN_JAVA_STRING(file_name, fileName);
- UNPIN_JAVA_STRING(file_name, fileName);
-
- if (file_id < 0) {
- /* throw exception */
- h5libraryError(env);
- } /* end if */
- else {
- object_name = ENVPTR->GetStringUTFChars(ENVPAR object_path, &isCopy2);
- if (object_name == NULL) {
- h5JNIFatalError( env, "H5Dopen: object name not pinned");
+ if (file_id < 0) {
+ /* throw exception */
+ h5libraryError(env);
} /* end if */
else {
- dataset_id = H5Dopen2(file_id, object_name, H5P_DEFAULT);
-
- ENVPTR->ReleaseStringUTFChars(ENVPAR object_path, object_name);
-
- if (dataset_id < 0) {
- H5Fclose(file_id);
- h5libraryError(env);
+ object_name = ENVPTR->GetStringUTFChars(ENVPAR object_path, &isCopy2);
+ if (object_name == NULL) {
+ h5JNIFatalError( env, "H5Dopen: object name not pinned");
} /* end if */
else {
- file_export = ENVPTR->GetStringUTFChars(ENVPAR file_export_name, 0);
- stream = HDfopen(file_export, "w+");
- ENVPTR->ReleaseStringUTFChars(ENVPAR file_export_name, file_export);
+ dataset_id = H5Dopen2(file_id, object_name, H5P_DEFAULT);
- ret_val = h5str_dump_simple_dset(stream, dataset_id, binary_order);
+ ENVPTR->ReleaseStringUTFChars(ENVPAR object_path, object_name);
- if (stream)
- HDfclose(stream);
+ if (dataset_id < 0) {
+ H5Fclose(file_id);
+ h5libraryError(env);
+ } /* end if */
+ else {
+ file_export = ENVPTR->GetStringUTFChars(ENVPAR file_export_name, 0);
+ stream = HDfopen(file_export, "w+");
+ ENVPTR->ReleaseStringUTFChars(ENVPAR file_export_name, file_export);
- H5Dclose(dataset_id);
+ ret_val = h5str_dump_simple_dset(stream, dataset_id, binary_order);
- H5Fclose(file_id);
+ if (stream)
+ HDfclose(stream);
- if (ret_val < 0)
- h5libraryError(env);
+ H5Dclose(dataset_id);
+
+ H5Fclose(file_id);
+
+ if (ret_val < 0)
+ h5libraryError(env);
+ } /* end else */
} /* end else */
} /* end else */
- } /* end else */
+ }
} /* end else */
} /* end Java_hdf_hdf5lib_H5_H5export_1dataset */