diff options
author | Robb Matzke <matzke@llnl.gov> | 1999-04-23 12:31:21 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1999-04-23 12:31:21 (GMT) |
commit | d534a4dd0d1e646c531a31a5eb04842dfde5f470 (patch) | |
tree | 47b946b229d929139cf0fcad389e790d6a382e70 /src/H5S.c | |
parent | 94dd2f5b3d93c2e14ef2491e70a09a836affdf4c (diff) | |
download | hdf5-d534a4dd0d1e646c531a31a5eb04842dfde5f470.zip hdf5-d534a4dd0d1e646c531a31a5eb04842dfde5f470.tar.gz hdf5-d534a4dd0d1e646c531a31a5eb04842dfde5f470.tar.bz2 |
[svn-r1204] Changes since 19990415
----------------------
./config/depend.in
Fixed automatic dependencies. We were storing dependencies for
*.o files instead of *.lo files after shared libraries were
added.
./config/gnu-flags
./config/linux-gnulibc1
Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from
the linux file to this file and caused it to depend on the CPU
name. This fixes one of Elena's bugs.
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5P.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Tpublic.h
./test/istore.c
Added an H5Dget_storage_size() function that reports the
amount of storage allocated for raw data in a dataset.
Changed H5D_xfer_* to H5F_xfer_* because these properties are
more general than datasets. This also allows some of the
lower-level I/O functions to get this information easier.
./src/H5S.c
./src/H5Sall.c
Added two new functions H5S_all_read() and H5S_all_write()
which are optimizations that copy data directly between file
and memory without having to go through the scatter gather
step. This knocks quite a bit of time off the I/O and
reading/writing entire datasets is a fairly common operation.
./tools/h5ls.c
Reports the logical size of data, the allocated size of data,
and the percent utilization.
./MANIFEST
Removed old pablo files, added new files. Snapshots should now
start to work again.
./src/H5D.c
./src/H5Fmpio.c
Removed two warnings signed vs. unsigned comparisons and check
for overflow.
Diffstat (limited to 'src/H5S.c')
-rw-r--r-- | src/H5S.c | 36 |
1 files changed, 23 insertions, 13 deletions
@@ -1462,7 +1462,8 @@ H5S_find (const H5S_t *mem_space, const H5S_t *file_space) * We can't do conversion if the source and destination select a * different number of data points. */ - if (H5S_get_select_npoints (mem_space) != H5S_get_select_npoints (file_space)) { + if (H5S_get_select_npoints(mem_space) != + H5S_get_select_npoints (file_space)) { HRETURN_ERROR (H5E_DATASPACE, H5E_BADRANGE, NULL, "memory and file data spaces are different sizes"); } @@ -1489,7 +1490,27 @@ H5S_find (const H5S_t *mem_space, const H5S_t *file_space) } /* - * Extend the table. + * Create a new path. + */ + if (NULL==(path = H5MM_calloc(sizeof(*path)))) { + HRETURN_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, + "memory allocation failed for data space conversion " + "path"); + } + path->f = H5S_fconv_g[file_space->select.type]; + path->m = H5S_mconv_g[mem_space->select.type]; + + /* + * Initialize direct read/write functions + */ + if (H5S_SEL_ALL==file_space->select.type && + H5S_SEL_ALL==mem_space->select.type) { + path->read = H5S_all_read; + path->write = H5S_all_write; + } + + /* + * Add the new path to the table. */ if (H5S_nconv_g>=H5S_aconv_g) { size_t n = MAX(10, 2*H5S_aconv_g); @@ -1502,17 +1523,6 @@ H5S_find (const H5S_t *mem_space, const H5S_t *file_space) H5S_aconv_g = n; H5S_conv_g = p; } - - /* - * Create a new path and add it to the table. - */ - if (NULL==(path = H5MM_calloc(sizeof(*path)))) { - HRETURN_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "memory allocation failed for data space conversion " - "path"); - } - path->f = H5S_fconv_g[file_space->select.type]; - path->m = H5S_mconv_g[mem_space->select.type]; H5S_conv_g[H5S_nconv_g++] = path; FUNC_LEAVE(path); |