summaryrefslogtreecommitdiffstats
path: root/src/H5Dchunk.c
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2009-12-09 17:06:02 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2009-12-09 17:06:02 (GMT)
commit58c8ac33a81b6feed41bab0db6ac3d7dbe98a9be (patch)
treec38aa744dc9a7f268c90fce1d81f97c8d84461d7 /src/H5Dchunk.c
parent94a00c768c32a49100d499e90a83e73d11a3ac12 (diff)
downloadhdf5-58c8ac33a81b6feed41bab0db6ac3d7dbe98a9be.zip
hdf5-58c8ac33a81b6feed41bab0db6ac3d7dbe98a9be.tar.gz
hdf5-58c8ac33a81b6feed41bab0db6ac3d7dbe98a9be.tar.bz2
[svn-r17977] 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 on jam and amani - I tested the same change for 1.8 with h5committest.
Diffstat (limited to 'src/H5Dchunk.c')
-rw-r--r--src/H5Dchunk.c4
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 */