From ece402b9852ee97a9221f9b443300287f53e79df Mon Sep 17 00:00:00 2001 From: Magnus Lundborg Date: Mon, 30 Jun 2014 10:06:02 +0200 Subject: [PATCH] Fix tng_num_frame_sets_get() with no frame sets. 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 | 2 +- src/external/tng_io/src/lib/tng_io.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/external/tng_io/BuildTNG.cmake b/src/external/tng_io/BuildTNG.cmake index 6ccc50e78d..ea77430cf9 100644 --- a/src/external/tng_io/BuildTNG.cmake +++ b/src/external/tng_io/BuildTNG.cmake @@ -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 diff --git a/src/external/tng_io/src/lib/tng_io.c b/src/external/tng_io/src/lib/tng_io.c index 792be2e929..fa4d3e55bf 100644 --- a/src/external/tng_io/src/lib/tng_io.c +++ b/src/external/tng_io/src/lib/tng_io.c @@ -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') -- 2.22.0