diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-07-08 16:46:16 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-07-08 16:46:16 (GMT) |
commit | 6a1bea937dd076a9d7ce56179e3daa9bb78b8f86 (patch) | |
tree | 74aee19b5f80eafc8508edb3b6002f2e3be011e7 /src/H5Odtype.c | |
parent | a8e53d788448a10071799ded2c8d78dddbc53d63 (diff) | |
download | hdf5-6a1bea937dd076a9d7ce56179e3daa9bb78b8f86.zip hdf5-6a1bea937dd076a9d7ce56179e3daa9bb78b8f86.tar.gz hdf5-6a1bea937dd076a9d7ce56179e3daa9bb78b8f86.tar.bz2 |
[svn-r469] Changes since 19980707
----------------------
./bin/trace
./src/H5.c
Added tracing support for H5S_seloper_t and H5S_class_t.
./src/H5Sselect.c
./src/H5S.c
Added tracing statements that weren't inserted previously
because of formatting problems.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/cmpd_dset.c
Added H5Tinsert_array() for inserting an array member into a
compound data type. Added support to the struct conversion
function for member arrays. The index permutation is not
supported yet in the conversion (source and destination must
have the same permutations).
Diffstat (limited to 'src/H5Odtype.c')
-rw-r--r-- | src/H5Odtype.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/H5Odtype.c b/src/H5Odtype.c index 6ff75d9..aefa335 100644 --- a/src/H5Odtype.c +++ b/src/H5Odtype.c @@ -160,14 +160,16 @@ H5O_dtype_decode_helper(const uint8 **pp, H5T_t *dt) dt->u.compnd.nmembs = flags & 0xffff; assert(dt->u.compnd.nmembs > 0); dt->u.compnd.nalloc = dt->u.compnd.nmembs; - dt->u.compnd.memb = H5MM_calloc(dt->u.compnd.nalloc*sizeof(H5T_member_t)); + dt->u.compnd.memb = H5MM_calloc(dt->u.compnd.nalloc* + sizeof(H5T_member_t)); if (NULL==dt->u.compnd.memb) { HRETURN_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed"); } for (i = 0; i < dt->u.compnd.nmembs; i++) { dt->u.compnd.memb[i].name = H5MM_xstrdup((const char *)*pp); - *pp += ((HDstrlen((const char *)*pp) + 8) / 8) * 8; /*multiple of 8 w/ null terminator */ + /*multiple of 8 w/ null terminator */ + *pp += ((HDstrlen((const char *)*pp) + 8) / 8) * 8; UINT32DECODE(*pp, dt->u.compnd.memb[i].offset); dt->u.compnd.memb[i].ndims = *(*pp)++; assert(dt->u.compnd.memb[i].ndims <= 4); @@ -194,6 +196,12 @@ H5O_dtype_decode_helper(const uint8 **pp, H5T_t *dt) HRETURN_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "can't decode member type"); } + + /* Total member size */ + dt->u.compnd.memb[i].size = dt->u.compnd.memb[i].type->size; + for (j=0; j<dt->u.compnd.memb[i].ndims; j++) { + dt->u.compnd.memb[i].size *= dt->u.compnd.memb[i].dim[j]; + } } break; |