diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2009-12-09 16:15:45 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2009-12-09 16:15:45 (GMT) |
commit | 7d8ceade335c6528ba4cdbb386c36e918e02ee44 (patch) | |
tree | d16efe58476385a5e9529281a67c6211762f651a /src/H5Dchunk.c | |
parent | 4f90de0956d5f6406f4bed659dc50ffd971c014c (diff) | |
download | hdf5-7d8ceade335c6528ba4cdbb386c36e918e02ee44.zip hdf5-7d8ceade335c6528ba4cdbb386c36e918e02ee44.tar.gz hdf5-7d8ceade335c6528ba4cdbb386c36e918e02ee44.tar.bz2 |
[svn-r17976] Bug fix for 1584. H5Tdetect_class said a VL string is a string type. But when it's in a
compound type, it says it's a VL type. We want to tell user a VL string is a string. But
internally we treat it as a VL type. I added a flag as a parameter of H5T_detect_class. It
tells whether the caller is the public function H5Tdetect_class. I also added a detection for
VL string in the private function for the compound case (or array or nested VL type).
Tested with h5committest.
Diffstat (limited to 'src/H5Dchunk.c')
-rw-r--r-- | src/H5Dchunk.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index a358320..cb7901e 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -4150,7 +4150,7 @@ H5D_chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) /* Check parameter for type conversion */ if(udata->do_convert) { - if(H5T_detect_class(udata->dt_src, H5T_VLEN) > 0) + if(H5T_detect_class(udata->dt_src, H5T_VLEN, FALSE) > 0) is_vlen = TRUE; else if((H5T_get_class(udata->dt_src, FALSE) == H5T_REFERENCE) && (udata->file_src != udata->idx_info_dst->f)) fix_ref = TRUE; @@ -4384,7 +4384,7 @@ H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register source file datatype") /* If there's a VLEN source datatype, set up type conversion information */ - if(H5T_detect_class(dt_src, H5T_VLEN) > 0) { + if(H5T_detect_class(dt_src, H5T_VLEN, FALSE) > 0) { H5T_t *dt_dst; /* Destination datatype */ H5T_t *dt_mem; /* Memory datatype */ size_t mem_dt_size; /* Memory datatype size */ |