changeset 2494:04d0fb05f230

fix a bug in output_mnc.c for output buffers for a slice
author claude <claude>
date Fri, 06 Nov 2009 19:42:33 +0000 (2009-11-06)
parents aaf8cc96fda0
children ba409fa1d6c0
files volume_io/Volumes/input_mnc.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/volume_io/Volumes/input_mnc.c
+++ b/volume_io/Volumes/input_mnc.c
@@ -589,15 +589,17 @@
     file->n_slab_dims = 0;
     slab_size = 1;
     int unit_size = get_type_size( get_volume_data_type(volume) );
+    int full_dim = 1;
 
     for( d = file->n_file_dimensions-1; d >= 0; d-- ) {
       if( file->to_volume_index[d] != INVALID_AXIS ) {
-        if( MI_MAX_VAR_BUFFER_SIZE > file->sizes_in_file[d] * slab_size * unit_size ) {
+        if( MI_MAX_VAR_BUFFER_SIZE > file->sizes_in_file[d] * slab_size * unit_size && full_dim ) {
           slab_size *= file->sizes_in_file[d];
           file->n_slab_dims++;  /* integral number of complete dimensions */
         } else {
           slab_size *= MIN( file->sizes_in_file[d],
                             (hsize_t)( MI_MAX_VAR_BUFFER_SIZE / ( slab_size * unit_size ) ) );
+          full_dim = 0;
         }
       }
     }