Removed H5_OID.
./src/H5D.c
Fixed a few things to work better with symbol tables. Combined
the H5D_oid_t and H5D_dataset_t structs.
./src/H5Dprivate.c
Combined the H5D_oid_t and H5D_dataset_t types.
./src/H5M.c
Removed the callback list for H5_OID.
Changed atexit() to HDatexit().
./src/H5AC.c
Changed qsort() to HDqsort().
./src/H5B.c
Changed memcmp() to HDmemcmp().
./src/H5E.c
./src/H5M.c
Added parentheses around indirect function calls so that
checkposix doesn't complain and to advertise that it's an
indirect function call.
./src/H5F.c
./src/H5G.c
Added errors field to each function prologue to test the
script mentioned above.
./src/H5H.c
Changed fputc() to HDfputc().
./src/H5MM.c
./src/H5MMprivate.h
The argument for H5MM_xfree() is a pointer to a constant even
though the argument to free() isn't. This reduces the number
of warnings in other parts of the code but creates a new
warning in this file.
./src/H5O.c
Plugged a few memory leaks that happen during error handling.
./src/H5Oname.c
./src/debug.c
Added `HD' to the beginning of some posix functions.
Perl script that looks for Posix functions that haven't been
protected by adding `HD' to the beginning of the name. It
takes a list of .c file names as arguments.
./bin/errors NEW
A filter that takes a function prologue and function body as
standard input and updates the error list in the prologue
based on the function body. You must add the `ERRORS' or
`Errors:' field to the prologue before you pass it through
this filter or else the errors come out as a separate
comment. The errors field must be terminated with a blank
line in the prologue so we know where the end is.
I may enhance this in the future to take an entire file as
standard input instead of individual functions.
Added H5Fflush() and H5F_flush() which flush (and optionally
invalidate the cache) and flush the file boot block.
H5Fcreate() calls H5F_flush() to output the boot block.
H5Fclose() calls H5F_flush() to update the boot block.
H5F_debug() prints the root symbol table entry.
./src/H5Fpublic.h
Added H5Fflush() prototype.
./src/H5G.c
The name message is removed when an object moves from the root
object position into a directory.
Added H5G_debug() to print a symbol table entry. Most of the
code was just moved from H5G_node_debug().
./src/H5Gnode.c
Moved some debugging code into H5G_debug().
./src/H5Gprivate.c
Added H5G_debug() prototype.
./src/H5O.c
Implemented H5O_remove().
Added identifiers for H5O_SIM_DIM and H5O_SIM_DTYPE so they
can be read from files.
H5O_load() combines adjacent null messages for better memory
management.
./src/H5Oprivate.h
Changed minimum header data block size from 16 to 32 bytes.
Changed prototype for H5O_remove()
If the symbol table entry doesn't change then the ent_modified
argument to H5O_modify() doesn't change. This allows us to
set ent_modified to false and then call H5O_modify() a whole
bunch of times and easily determine if any of the calls
modified the symbol table entry.
./src/H5D.c
Fixed caching of things in the symbol table entry using the
scheme we came up with a couple months ago.
./test/tohdr.c
./test/tmeta.c
./test/theap.c
./test/tfile.c
./test/testhdf5.h
./test/testhdf5.c
Changed the MESSAGE macro so it doesn't have a semicolon
inside the argument list and automatic indentation tools work
better.
Old call: MESSAGE (5, printfunc("foo%s %d", s, i););
New call: MESSAGE (5, ("foo%s %d", s, i));
The parentheses are required.
./test/tstab.c
Added more tests.
Changed H5D_flush() to work with the new symbol table
functions. I just remembered that caching data in the symbol
table entries still needs some work, so there's a line in
there that invalidates the symbol table entry cache.
Also, there are some comments in there with the word `Quincey'
for you to read about inserting the messages in the dataset
object header.