summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-08-20 22:57:35 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-08-20 22:57:35 (GMT)
commit49133159c8bb1da1edf9e89971a842e50b545314 (patch)
treeb1fccecc5be463797bd9bbbb9a7a31b3afcda44a
parent2c61dcc3ee50581ca29191f3d7ea891fcca3c4a2 (diff)
downloadhdf5-49133159c8bb1da1edf9e89971a842e50b545314.zip
hdf5-49133159c8bb1da1edf9e89971a842e50b545314.tar.gz
hdf5-49133159c8bb1da1edf9e89971a842e50b545314.tar.bz2
[svn-r609] Debugging.html
Fixed errors H5.c Fixed core dump with setvbuf() for debugging. H5Fistore.c Fixed bug with sparse datasets. H5Omtime.c Found a typo in "Posix Programmer's Guide". The `%z' in the strftime() should be `%Z' instead. H5T.c H5Tpublic.h Improved api tracing for H5Tinsert_array(). h5tools.c Doesn't dump core for empty datasets.
-rw-r--r--MANIFEST1
-rw-r--r--README2
-rw-r--r--doc/html/Debugging.html25
-rw-r--r--src/.distdep672
-rw-r--r--src/H5.c11
-rw-r--r--src/H5Distore.c13
-rw-r--r--src/H5Fistore.c13
-rw-r--r--src/H5Omtime.c2
-rw-r--r--src/H5T.c2
-rw-r--r--src/H5Tpublic.h2
-rw-r--r--tools/h5tools.c5
11 files changed, 393 insertions, 355 deletions
diff --git a/MANIFEST b/MANIFEST
index 7567a99..298591a 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -295,4 +295,3 @@
./tools/h5repart.c
./tools/h5tools.c
./tools/h5tools.h
-
diff --git a/README b/README
index 13739a1..3286b35 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is hdf5-1.0.69 released on Thu Aug 20 04:19:20 CDT 1998
+This is hdf5-1.0.70 released on Thu Aug 20 17:55:38 CDT 1998
Please refer to the INSTALL file for installation instructions.
------------------------------------------------------------------------------
diff --git a/doc/html/Debugging.html b/doc/html/Debugging.html
index 8c0c4cc..bd531f8 100644
--- a/doc/html/Debugging.html
+++ b/doc/html/Debugging.html
@@ -10,7 +10,7 @@
<h2>Introduction</h2>
<p>The HDF5 library contains a number of debugging features to
- make programmers lives easier including the ability to print
+ make programmers' lives easier including the ability to print
detailed error messages, check invariant conditions, display
timings and other statistics, and trace API function calls and
return values.
@@ -27,7 +27,7 @@
<br><br>
<dt><b>Invariant Conditions</b>
- <dd>Unless <code>NDEBUG</code> is defined during compiling the
+ <dd>Unless <code>NDEBUG</code> is defined during compiling, the
library will include code to verify that invariant conditions
have the expected values. When a problem is detected the
library will display the file and line number within the
@@ -63,14 +63,17 @@
<p>
<center>
<table border align=center width="100%">
- <caption align=top><h4>Example: An Error Message</h4></caption>
<tr>
<td>
<p><code><pre>
+
HDF5-DIAG: Error detected in thread 0. Back trace follows.
- #000: H5T.c line 462 in H5Tclose(): predefined data type
- major(01): Function argument
- minor(05): Bad value
+ #000: H5F.c line 1245 in H5Fopen(): unable to open file
+ major(04): File interface
+ minor(10): Unable to open file
+ #001: H5F.c line 846 in H5F_open(): file does not exist
+ major(04): File interface
+ minor(10): Unable to open file
</code></pre>
</td>
</tr>
@@ -78,7 +81,7 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows.
</center>
<p>The error handling package (H5E) is described
- <a href="Errors.html">here</a>.
+ <a href="Errors.html">elsewhere</a>.
<h2>Invariant Conditions</h2>
@@ -92,10 +95,10 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows.
<p>
<center>
<table border align=center width="100%">
- <caption align=top><h4>Example: A Failed Assertion</h4></caption>
<tr>
<td>
<p><code><pre>
+
Assertion failed: H5.c:123: i&lt;NELMTS(H5_debug_g)
IOT Trap, core dumped.
</code></pre>
@@ -263,10 +266,10 @@ IOT Trap, core dumped.
<p>
<center>
<table border align=center width="100%">
- <caption align=top><b>Sample Output</b></caption>
<tr>
<td>
<code><pre>
+
H5Tcopy(type=184549388) = 184549419 (type);
H5Tcopy(type=184549392) = 184549424 (type);
H5Tlock(type=184549424) = SUCCEED;
@@ -297,7 +300,6 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows.
<p>
<center>
<table border align=center width="100%">
- <caption align=top><b>Execution Examples</b></caption>
<tr>
<td>To display the trace on the standard error stream:
<code><pre>
@@ -378,6 +380,7 @@ $ env HDF5_DEBUG="55 trace" a.out 55>trace-output
<tr>
<td>
<code><pre>
+
$ ../bin/trace *.c
H5E.c: in function `H5Ewalk_cb':
H5E.c:336: warning: trace info was not inserted
@@ -402,7 +405,7 @@ H5E.c:336: warning: trace info was not inserted
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<!-- Created: Wed Jun 17 12:29:12 EDT 1998 -->
<!-- hhmts start -->
-Last modified: Wed Aug 19 15:21:35 PDT 1998
+Last modified: Thu Aug 20 10:43:42 PDT 1998
<!-- hhmts end -->
</body>
</html>
diff --git a/src/.distdep b/src/.distdep
index 9f9d5a9..ea5aa16 100644
--- a/src/.distdep
+++ b/src/.distdep
@@ -1,34 +1,3 @@
-H5.o: \
- H5.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h \
- H5Dpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Iprivate.h \
- H5MMprivate.h \
- H5MMpublic.h \
- H5Pprivate.h \
- H5Ppublic.h \
- H5Zpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h
H5A.o: \
H5A.c \
H5private.h \
@@ -62,111 +31,6 @@ H5A.o: \
H5Ppublic.h \
H5Apkg.h \
H5Aprivate.h
-H5AC.o: \
- H5AC.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h \
- H5Dpublic.h \
- H5Eprivate.h \
- H5Epublic.h
-H5B.o: \
- H5B.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h \
- H5Dpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MFprivate.h \
- H5MFpublic.h \
- H5MMprivate.h
-H5D.o: \
- H5D.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Iprivate.h \
- H5Ipublic.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5Dprivate.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5HLprivate.h \
- H5HLpublic.h \
- H5MFprivate.h \
- H5MFpublic.h
-H5E.o: \
- H5E.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Iprivate.h \
- H5Ipublic.h \
- H5Eprivate.h
-H5F.o: \
- H5F.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Aprivate.h \
- H5Apublic.h \
- H5Ipublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5Dprivate.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Iprivate.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MMprivate.h \
- H5MMpublic.h
H5Farray.o: \
H5Farray.c \
H5private.h \
@@ -203,55 +67,6 @@ H5Fcore.o: \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h
-H5Ffamily.o: \
- H5Ffamily.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Ipublic.h
-H5Fistore.o: \
- H5Fistore.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Dprivate.h \
- H5Dpublic.h \
- H5Ipublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MFprivate.h \
- H5MFpublic.h
-H5Flow.o: \
- H5Flow.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Ipublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5MMprivate.h \
- H5MMpublic.h
H5Fmpio.o: \
H5Fmpio.c \
H5private.h \
@@ -450,24 +265,6 @@ H5HG.o: \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h
-H5HL.o: \
- H5HL.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h \
- H5Dpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5HLprivate.h \
- H5HLpublic.h \
- H5MFprivate.h \
- H5MFpublic.h \
- H5MMprivate.h
H5I.o: \
H5I.c \
H5private.h \
@@ -476,14 +273,6 @@ H5I.o: \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
-H5MF.o: \
- H5MF.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Ipublic.h
H5MM.o: \
H5MM.c \
H5private.h \
@@ -492,34 +281,6 @@ H5MM.o: \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h
-H5O.o: \
- H5O.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h \
- H5Dpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MFprivate.h \
- H5MFpublic.h \
- H5MMprivate.h \
- H5MMpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h
H5Oattr.o: \
H5Oattr.c \
H5private.h \
@@ -668,29 +429,6 @@ H5Olayout.o: \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h
-H5Omtime.o: \
- H5Omtime.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Ipublic.h \
- H5MMprivate.h \
- H5MMpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h
H5Oname.o: \
H5Oname.c \
H5private.h \
@@ -829,29 +567,6 @@ H5P.o: \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h
-H5S.o: \
- H5S.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Iprivate.h \
- H5Ipublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MMprivate.h \
- H5MMpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h
H5Sall.o: \
H5Sall.c \
H5private.h \
@@ -898,29 +613,6 @@ H5Shyper.o: \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
-H5Smpio.o: \
- H5Smpio.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5Ipublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Dpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h
H5Spoint.o: \
H5Spoint.c \
H5private.h \
@@ -972,34 +664,6 @@ H5Sselect.o: \
H5Tpublic.h \
H5Zprivate.h \
H5Zpublic.h
-H5T.o: \
- H5T.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Dprivate.h \
- H5Dpublic.h \
- H5Ipublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Iprivate.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MMprivate.h
H5Tbit.o: \
H5Tbit.c \
H5private.h \
@@ -1090,6 +754,143 @@ H5V.o: \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h
+H5AC.o: \
+ H5AC.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h
+H5B.o: \
+ H5B.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h \
+ H5MMprivate.h
+H5E.o: \
+ H5E.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Iprivate.h \
+ H5Ipublic.h \
+ H5Eprivate.h
+H5Ffamily.o: \
+ H5Ffamily.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Ipublic.h
+H5Flow.o: \
+ H5Flow.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Ipublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5MMprivate.h \
+ H5MMpublic.h
+H5HL.o: \
+ H5HL.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5HLprivate.h \
+ H5HLpublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h \
+ H5MMprivate.h
+H5MF.o: \
+ H5MF.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Ipublic.h
+H5O.o: \
+ H5O.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h \
+ H5MMprivate.h \
+ H5MMpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h
+H5Smpio.o: \
+ H5Smpio.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Ipublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h
H5Z.o: \
H5Z.c \
H5private.h \
@@ -1117,3 +918,202 @@ H5Z.o: \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h
+H5D.o: \
+ H5D.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Iprivate.h \
+ H5Ipublic.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Dprivate.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5HLprivate.h \
+ H5HLpublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h
+H5F.o: \
+ H5F.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Aprivate.h \
+ H5Apublic.h \
+ H5Ipublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Dprivate.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Iprivate.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MMprivate.h \
+ H5MMpublic.h
+H5S.o: \
+ H5S.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Iprivate.h \
+ H5Ipublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MMprivate.h \
+ H5MMpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h
+H5T.o: \
+ H5T.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Dprivate.h \
+ H5Dpublic.h \
+ H5Ipublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Iprivate.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MMprivate.h
+H5.o: \
+ H5.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Iprivate.h \
+ H5MMprivate.h \
+ H5MMpublic.h \
+ H5Pprivate.h \
+ H5Ppublic.h \
+ H5Zpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h
+H5Fistore.o: \
+ H5Fistore.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Dprivate.h \
+ H5Dpublic.h \
+ H5Ipublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h
+H5Omtime.o: \
+ H5Omtime.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5Ipublic.h \
+ H5MMprivate.h \
+ H5MMpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h
diff --git a/src/H5.c b/src/H5.c
index 072f6d0..465cbb2 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -391,8 +391,9 @@ H5_debug_mask(const char *s)
} else if (isdigit(*s)) {
int fd = (int)HDstrtol (s, &rest, 0);
- stream = HDfdopen (fd, "w");
- setvbuf (stream, NULL, _IOLBF, 0);
+ if ((stream=HDfdopen(fd, "w"))) {
+ setvbuf (stream, NULL, _IOLBF, 0);
+ }
s = rest;
} else {
s++;
@@ -2124,7 +2125,11 @@ H5_trace (hbool_t returning, const char *func, const char *type, ...)
}
} else {
vp = va_arg (ap, void*);
- fprintf (out, "0x%lx", (unsigned long)vp);
+ if (vp) {
+ fprintf (out, "0x%lx", (unsigned long)vp);
+ } else {
+ fprintf(out, "NULL");
+ }
}
break;
diff --git a/src/H5Distore.c b/src/H5Distore.c
index 94d3590..e94e627 100644
--- a/src/H5Distore.c
+++ b/src/H5Distore.c
@@ -471,6 +471,12 @@ H5F_istore_new_node(H5F_t *f, H5B_ins_t op,
* that describes the chunk) and RT_KEY is the right key (the
* one that describes the next or last chunk).
*
+ * Note: It's possible that the chunk isn't really found. For
+ * instance, in a sparse dataset the requested chunk might fall
+ * between two stored chunks in which case this function is
+ * called with the maximum stored chunk indices less than the
+ * requested chunk indices.
+ *
* Return: Success: SUCCEED with information about the chunk
* returned through the UDATA argument.
*
@@ -500,6 +506,13 @@ H5F_istore_found(H5F_t __unused__ *f, const haddr_t *addr,
assert(udata);
assert(lt_key);
+ /* Is this *really* the requested chunk? */
+ for (i=0; i<udata->mesg.ndims; i++) {
+ if (udata->key.offset[i]>=lt_key->offset[i]+udata->mesg.dim[i]) {
+ HRETURN(FAIL);
+ }
+ }
+
/* Initialize return values */
udata->addr = *addr;
udata->key.nbytes = lt_key->nbytes;
diff --git a/src/H5Fistore.c b/src/H5Fistore.c
index 94d3590..e94e627 100644
--- a/src/H5Fistore.c
+++ b/src/H5Fistore.c
@@ -471,6 +471,12 @@ H5F_istore_new_node(H5F_t *f, H5B_ins_t op,
* that describes the chunk) and RT_KEY is the right key (the
* one that describes the next or last chunk).
*
+ * Note: It's possible that the chunk isn't really found. For
+ * instance, in a sparse dataset the requested chunk might fall
+ * between two stored chunks in which case this function is
+ * called with the maximum stored chunk indices less than the
+ * requested chunk indices.
+ *
* Return: Success: SUCCEED with information about the chunk
* returned through the UDATA argument.
*
@@ -500,6 +506,13 @@ H5F_istore_found(H5F_t __unused__ *f, const haddr_t *addr,
assert(udata);
assert(lt_key);
+ /* Is this *really* the requested chunk? */
+ for (i=0; i<udata->mesg.ndims; i++) {
+ if (udata->key.offset[i]>=lt_key->offset[i]+udata->mesg.dim[i]) {
+ HRETURN(FAIL);
+ }
+ }
+
/* Initialize return values */
udata->addr = *addr;
udata->key.nbytes = lt_key->nbytes;
diff --git a/src/H5Omtime.c b/src/H5Omtime.c
index 0a6ebea..3daf15a 100644
--- a/src/H5Omtime.c
+++ b/src/H5Omtime.c
@@ -307,7 +307,7 @@ H5O_mtime_debug(H5F_t __unused__ *f, const void *_mesg, FILE *stream,
tm = localtime(mesg);
- strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z", tm);
+ strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %Z", tm);
fprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
"Time:", buf);
diff --git a/src/H5T.c b/src/H5T.c
index 15f2bef..91eddc8 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -2829,7 +2829,7 @@ H5Tinsert (hid_t parent_id, const char *name, size_t offset, hid_t member_id)
*/
herr_t
H5Tinsert_array (hid_t parent_id, const char *name, size_t offset,
- int ndims, const size_t *dim, const int *perm,
+ int ndims, const size_t dim[/*ndims*/], const int *perm,
hid_t member_id)
{
H5T_t *parent = NULL; /*the compound parent data type */
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index 8f72510..fb37ddb 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -383,7 +383,7 @@ hbool_t H5Tcommitted (hid_t type_id);
herr_t H5Tinsert (hid_t parent_id, const char *name, size_t offset,
hid_t member_id);
herr_t H5Tinsert_array (hid_t parent_id, const char *name, size_t offset,
- int ndims, const size_t *dim, const int *perm,
+ int ndims, const size_t dim[], const int *perm,
hid_t member_id);
herr_t H5Tpack (hid_t type_id);
diff --git a/tools/h5tools.c b/tools/h5tools.c
index 0472074..bfb46a3 100644
--- a/tools/h5tools.c
+++ b/tools/h5tools.c
@@ -22,7 +22,11 @@
* size of that temporary buffer in bytes. For efficiency's sake, choose the
* largest value suitable for your machine (for testing use a small value).
*/
+#if 0
#define H5DUMP_BUFSIZE (1024*1024)
+#else
+#define H5DUMP_BUFSIZE (1024)
+#endif
#define OPT(X,S) ((X)?(X):(S))
#define MIN(X,Y) ((X)<(Y)?(X):(Y))
@@ -258,6 +262,7 @@ h5dump_simple(FILE *stream, const h5dump_t *info, hid_t dset, hid_t p_type)
for (i=0, p_nelmts=1; i<(hsize_t)ndims; i++) {
p_nelmts *= p_max_idx[i]-p_min_idx[i];
}
+ if (0==p_nelmts) return 0; /*nothing to print*/
/*
* Determine the strip mine size and allocate a buffer. The strip mine is