Fix tng_num_frame_sets_get() with no frame sets.
authorMagnus Lundborg <lundborg.magnus@gmail.com>
Mon, 30 Jun 2014 08:06:02 +0000 (10:06 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sat, 5 Jul 2014 12:37:09 +0000 (14:37 +0200)
When there are no frame sets the function returned an error.
This corresponds to commit 6f7862c7406b in the TNG repository.

Fixes #1540

Change-Id: I3df04d84ebd8fcdc6be76a446efa3209df363d23

src/external/tng_io/BuildTNG.cmake
src/external/tng_io/src/lib/tng_io.c

index 6ccc50e78d601dd621fd49d43a22a60c39e40ae9..ea77430cf92c228b80425a7db2d486884fb8e21e 100644 (file)
@@ -5,7 +5,7 @@ set(TNG_ROOT_BINARY_DIR ${CMAKE_BINARY_DIR}/${TNG_ROOT_BINARY_DIR})
 function (TNG_GENERATE_VERSION_H)
     set(TNG_MAJOR_VERSION "1")
     set(TNG_MINOR_VERSION "6")
-    set(TNG_VERSION_PATCH_LEVEL "0")
+    set(TNG_VERSION_PATCH_LEVEL "1")
     set(TNG_IO_VERSION "${TNG_MAJOR_VERSION}.${TNG_MINOR_VERSION}.${TNG_VERSION_PATCH_LEVEL}")
     set(TNG_API_VERSION "6")
     configure_file(${TNG_ROOT_SOURCE_DIR}/include/tng/version.h.in
index 792be2e92900f5d1e17a3f4167e7464e3426750e..fa4d3e55bfe39ed9e50311e773a35edf3bb7b466 100644 (file)
@@ -11525,7 +11525,7 @@ tng_function_status DECLSPECDLLEXPORT tng_num_frame_sets_get
     int64_t long_stride_length, medium_stride_length;
     long file_pos, orig_frame_set_file_pos;
     tng_trajectory_frame_set_t frame_set;
-    struct tng_trajectory_frame_set   orig_frame_set;
+    struct tng_trajectory_frame_set orig_frame_set;
     tng_gen_block_t block;
     tng_function_status stat;
     int64_t cnt = 0;
@@ -11540,6 +11540,12 @@ tng_function_status DECLSPECDLLEXPORT tng_num_frame_sets_get
     orig_frame_set_file_pos = tng_data->current_trajectory_frame_set_input_file_pos;
     file_pos = (long)tng_data->first_trajectory_frame_set_input_file_pos;
 
+    if(file_pos < 0)
+    {
+        *n = tng_data->n_trajectory_frame_sets = cnt;
+        return(TNG_SUCCESS);
+    }
+
     tng_block_init(&block);
     fseek(tng_data->input_file,
           file_pos,
@@ -16903,7 +16909,12 @@ tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_open
         /* Read the file headers */
         tng_file_headers_read(*tng_data_p, TNG_USE_HASH);
 
-        tng_num_frame_sets_get(*tng_data_p, &(*tng_data_p)->n_trajectory_frame_sets);
+        stat = tng_num_frame_sets_get(*tng_data_p, &(*tng_data_p)->n_trajectory_frame_sets);
+
+        if(stat != TNG_SUCCESS)
+        {
+            return(stat);
+        }
     }
 
     if(mode == 'w')