summaryrefslogtreecommitdiffstats
path: root/src/H5Ostab.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-07 17:14:26 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-07 17:14:26 (GMT)
commit159fa7a232e1961940b83f035f4c27338d26337e (patch)
treeb7344e9cfaadbbec3bc3a0576df8c264debb8239 /src/H5Ostab.c
parent1d17defdfc977c063c7ff20b5868bef9a76e5d9a (diff)
downloadhdf5-159fa7a232e1961940b83f035f4c27338d26337e.zip
hdf5-159fa7a232e1961940b83f035f4c27338d26337e.tar.gz
hdf5-159fa7a232e1961940b83f035f4c27338d26337e.tar.bz2
[svn-r151] Changes since 19980105
---------------------- ./config/freebsd2.2.1 ./config/linux Added -UH5O_DEBUG to the debug flags. Turn this on to get lots of lines on stderr to show what objects are opened and closed. ./src/H5C.o ./src/H5Cpublic.h ./test/dsets.c ./test/tfile.c Split H5Cget_prop() and H5Cset_prop() into functions for each property. ./src/H5D.c ./src/H5Dpublic.h ./src/H5Gstab.c ./src/H5O.c ./src/H5Ocont.c ./src/H5Ocstore.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Oistore.c ./src/H5Oname.c ./src/H5Onull.c ./src/H5Oprivate.h ./src/H5Osdspace.c ./src/H5Ostab.c ./src/H5P.c ./src/istore.c ./test/tohdr.c Object header functions now understand constant vs. non-constant messages. ./src/H5F.c ./src/H5Fprivate.h The file OID can be closed before other OID's. ./src/H5Flow.c H5F_addr_defined() is a macro in this file. ./src/H5G.c ./src/H5Gpublic.h ./test/tstab.c A current working group cannot be deleted. ./src/H5Gent.c ./src/H5Gpkg.h Removed unused functionality. ./src/H5public.h Includes <sys/types.h> for size_t.
Diffstat (limited to 'src/H5Ostab.c')
-rw-r--r--src/H5Ostab.c76
1 files changed, 10 insertions, 66 deletions
diff --git a/src/H5Ostab.c b/src/H5Ostab.c
index db5ccdd..60aaa1d 100644
--- a/src/H5Ostab.c
+++ b/src/H5Ostab.c
@@ -26,9 +26,6 @@
static void *H5O_stab_decode (H5F_t *f, size_t raw_size, const uint8 *p);
static herr_t H5O_stab_encode (H5F_t *f, size_t size, uint8 *p,
const void *_mesg);
-static void *H5O_stab_fast (const H5G_cache_t *cache, void *_mesg);
-static hbool_t H5O_stab_cache (H5G_type_t *cache_type, H5G_cache_t *cache,
- const void *_mesg);
static void *H5O_stab_copy (const void *_mesg, void *_dest);
static size_t H5O_stab_size (H5F_t *f, const void *_mesg);
static herr_t H5O_stab_debug (H5F_t *f, const void *_mesg,
@@ -39,11 +36,8 @@ const H5O_class_t H5O_STAB[1] = {{
H5O_STAB_ID, /*message id number */
"stab", /*message name for debugging */
sizeof (H5O_stab_t), /*native message size */
- H5G_CACHED_STAB, /*symtab entry `type' field */
H5O_stab_decode, /*decode message */
H5O_stab_encode, /*encode message */
- H5O_stab_fast, /*get message from stab entry */
- H5O_stab_cache, /*put message into stab entry */
H5O_stab_copy, /*copy the native value */
H5O_stab_size, /*size of symbol table entry */
NULL, /*default reset method */
@@ -151,75 +145,25 @@ H5O_stab_encode (H5F_t *f, size_t raw_size, uint8 *p, const void *_mesg)
*
*-------------------------------------------------------------------------
*/
-static void *
-H5O_stab_fast (const H5G_cache_t *cache, void *_mesg)
+void *
+H5O_stab_fast (const H5G_cache_t *cache, const H5O_class_t *type, void *_mesg)
{
- H5O_stab_t *stab = (H5O_stab_t *)_mesg;
+ H5O_stab_t *stab = NULL;
FUNC_ENTER (H5O_stab_fast, NULL);
/* check args */
assert (cache);
+ assert (type);
- if (!stab) stab = H5MM_xcalloc (1, sizeof(H5O_stab_t));
- stab->btree_addr = cache->stab.btree_addr;
- stab->heap_addr = cache->stab.heap_addr;
-
- FUNC_LEAVE (stab);
-}
-
-
-/*-------------------------------------------------------------------------
- * Function: H5O_stab_cache
- *
- * Purpose: Copies a message into the cache portion of a symbol table
- * entry.
- *
- * Return: Success: TRUE if modified; FALSE if not modified.
- * In either case, the new cache type is
- * returned through the CACHE_TYPE argument.
- *
- * Failure: FAIL
- *
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Aug 6 1997
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static hbool_t
-H5O_stab_cache (H5G_type_t *cache_type, H5G_cache_t *cache, const void *_mesg)
-{
- const H5O_stab_t *stab = (const H5O_stab_t *)_mesg;
- hbool_t modified = FALSE;
-
- FUNC_ENTER (H5O_stab_cache, FAIL);
-
- /* check args */
- assert (cache_type);
- assert (cache);
- assert (stab);
-
- if (H5G_CACHED_STAB != *cache_type) {
- modified = TRUE;
- *cache_type = H5G_CACHED_STAB;
- cache->stab.btree_addr = stab->btree_addr;
- cache->stab.heap_addr = stab->heap_addr;
- } else {
- if (H5F_addr_ne (&(cache->stab.btree_addr), &(stab->btree_addr))) {
- modified = TRUE;
- cache->stab.btree_addr = stab->btree_addr;
- }
-
- if (H5F_addr_ne (&(cache->stab.heap_addr), &(stab->heap_addr))) {
- modified = TRUE;
- cache->stab.heap_addr = stab->heap_addr;
- }
+ if (H5O_STAB==type) {
+ if (_mesg) stab = (H5O_stab_t *)_mesg;
+ else stab = H5MM_xcalloc (1, sizeof(H5O_stab_t));
+ stab->btree_addr = cache->stab.btree_addr;
+ stab->heap_addr = cache->stab.heap_addr;
}
- FUNC_LEAVE (modified);
+ FUNC_LEAVE (stab);
}