summaryrefslogtreecommitdiffstats
path: root/src/H5T.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-06-23 16:16:51 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-06-23 16:16:51 (GMT)
commitc78a6aedafdf878d0cdd18977d5b10a90763b20d (patch)
treeaec30e31144a64dcdf818248c3598acb82c03c29 /src/H5T.c
parent0350710f5baa5177674289e06737c99cb201ecc5 (diff)
downloadhdf5-c78a6aedafdf878d0cdd18977d5b10a90763b20d.zip
hdf5-c78a6aedafdf878d0cdd18977d5b10a90763b20d.tar.gz
hdf5-c78a6aedafdf878d0cdd18977d5b10a90763b20d.tar.bz2
[svn-r1371]
Changes since 19990618 ---------------------- ./configure.in ./configure [REGENERATED] Now that compound struct conversions don't make so many calls to convert their members I turned the H5T debugging back on by default (it will still be disabled in a production version). ./src/H5AC.c ./src/H5B.c Made it possible to turn off messages about debugging these two packages using the same method as for all other packages. Just supply an invalid file descriptor number or use the shell to redirect said descriptor to /dev/null like this: $ HDF5_DEBUG=99,ac,b 99>/dev/null a.out ./src/H5T.c Changed the name of the old compound conversion function from `struct' to `struct(no-opt)' to be more consistent with the new version named `struct(opt)'. Fixed a bug in H5T_cmp() that caused any two VL types to compare as being equal. Removed duplicate code for bitfield comparisons in H5T_cmp(). ./src/H5Tconv.c Relaxed some constraints in the new compound conversion function so it applies to more cases. Also eliminated a memcpy in a tight loop. ./test/cmpd_dset.c Added a `--noopt' command line switch which unregisters the optimized compound conversion so we can test the non-optimized version.
Diffstat (limited to 'src/H5T.c')
-rw-r--r--src/H5T.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/H5T.c b/src/H5T.c
index 5b3262a..76afffa 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -953,7 +953,7 @@ H5T_init_interface(void)
status |= H5Tregister(H5T_PERS_SOFT, "fbo",
floatpt, floatpt,
H5T_conv_order);
- status |= H5Tregister(H5T_PERS_SOFT, "struct",
+ status |= H5Tregister(H5T_PERS_SOFT, "struct(no-opt)",
compound, compound,
H5T_conv_struct);
status |= H5Tregister(H5T_PERS_SOFT, "struct(opt)",
@@ -6186,19 +6186,21 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2)
}
} else if (H5T_VLEN==dt1->type) {
- /* Sort memory VL datatypes before disk datatypes, somewhat arbitrarily */
- if(dt1->u.vlen.type==H5T_VLEN_MEMORY && dt1->u.vlen.type==H5T_VLEN_DISK) {
+ /* Arbitrarily sort memory VL datatypes before disk datatypes */
+ if (dt1->u.vlen.type==H5T_VLEN_MEMORY &&
+ dt2->u.vlen.type==H5T_VLEN_DISK) {
HGOTO_DONE(-1);
- }
- else if(dt1->u.vlen.type==H5T_VLEN_DISK && dt1->u.vlen.type==H5T_VLEN_MEMORY) {
+ } else if (dt1->u.vlen.type==H5T_VLEN_DISK &&
+ dt2->u.vlen.type==H5T_VLEN_MEMORY) {
HGOTO_DONE(1);
}
+
} else if (H5T_OPAQUE==dt1->type) {
HGOTO_DONE(HDstrcmp(dt1->u.opaque.tag,dt2->u.opaque.tag));
} else {
/*
- * Atomic data types...
+ * Atomic datatypes...
*/
if (dt1->u.atomic.order < dt2->u.atomic.order) HGOTO_DONE(-1);
if (dt1->u.atomic.order > dt2->u.atomic.order) HGOTO_DONE(1);
@@ -6303,10 +6305,6 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2)
/*void */
break;
- case H5T_OPAQUE:
- /*void */
- break;
-
case H5T_REFERENCE:
if (dt1->u.atomic.u.r.rtype < dt2->u.atomic.u.r.rtype) {
HGOTO_DONE(-1);