summaryrefslogtreecommitdiffstats
path: root/src/H5B.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1997-08-12 22:44:46 (GMT)
committerRobb Matzke <matzke@llnl.gov>1997-08-12 22:44:46 (GMT)
commitfb947c34b142578774d5bb657c0b3e2a9b4781c7 (patch)
treec695cac8789bbe5fc92a5324e3027856bf3858bc /src/H5B.c
parent326981f421b993815657daecc8b37bd732513d82 (diff)
downloadhdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.zip
hdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.tar.gz
hdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.tar.bz2
[svn-r25] ./src/H5AC.c
We sort the cache before a complete flush because it might be more efficient to write things back to disk in order of increasing address. If you want the old way then undef the SORT_BY_ADDR constant at the top of H5AC.c I haven't determined which systems and I/O libraries this helps or hurts. (This is currently off because of a bug I need to track down that causes qsort() to run for a really long time). ./src/H5B.c Fixed a couple more bugs. ./src/H5Eprivate.h ./src/H5Eproto.h Added major H5E_DIRECTORY and minor H5E_EXISTS, H5E_COMPLEN. ./src/H5G.c Added directory-aware functions. The heap and B-tree are created when a directory is created instead of when the first symbol is added. This simplifies symbol table entry caching for the directory since the cached value never changes now. ./src/H5Gnode.c ./src/H5Gprivate.h Fine tuned the B-tree K values for symbol tables assuming an average number of symbols is about 100 per directory. The tuning minimizes storage space. Fixed a return value in H5G_node_cmp(). ./src/H5H.c ./src/H5Hprivate.h Moved some macros the the header file. ./src/H5O.c ./src/H5Ocont.c ./src/H5Onull.c ./src/H5Ostab.c Changed the arguments for the decode method for messages. The second argument is the raw message size. Added a class variable for native message size. Added H5O_reset() to free memory used internally by a message. ./src/H5Oname.c NEW ./src/H5Oprivate.h ./src/Makefile The object name message. ./src/hdf5port.h Added defn for HDstrdup()
Diffstat (limited to 'src/H5B.c')
-rw-r--r--src/H5B.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/H5B.c b/src/H5B.c
index d700a7c..21dc174 100644
--- a/src/H5B.c
+++ b/src/H5B.c
@@ -113,7 +113,7 @@
#define PABLO_MASK H5B_mask
-#define BOUND(MIN,X,MAX) ((MIN)<(X)?(MIN):((MAX)>(X)?(MAX):(X)))
+#define BOUND(MIN,X,MAX) ((X)<(MIN)?(MIN):((X)>(MAX)?(MAX):(X)))
#define false 0
#define true 1
@@ -173,7 +173,6 @@ H5B_new (hdf5_file_t *f, const H5B_class_t *type)
*/
assert (f);
assert (type);
- assert (sizeof_rkey>0);
/*
* Allocate file and memory data structures.
@@ -608,7 +607,7 @@ H5B_split (hdf5_file_t *f, const H5B_class_t *type, haddr_t addr, intn anchor)
*/
memcpy (bt->page + H5B_SIZEOF_HDR(f),
old->page + H5B_SIZEOF_HDR(f) + delta*recsize,
- type->k * recsize);
+ type->k * recsize + bt->sizeof_rkey);
memcpy (bt->native,
old->native + delta * type->sizeof_nkey,
(type->k+1) * type->sizeof_nkey);
@@ -626,7 +625,7 @@ H5B_split (hdf5_file_t *f, const H5B_class_t *type, haddr_t addr, intn anchor)
}
} else {
bt->key[i].dirty = 0;
- bt->key[i].rkey = bt->native + offset;
+ bt->key[i].rkey = bt->page + offset;
bt->key[i].nkey = NULL;
}
@@ -642,7 +641,7 @@ H5B_split (hdf5_file_t *f, const H5B_class_t *type, haddr_t addr, intn anchor)
/*
* Truncate the old node.
*/
- delta = H5B_ANCHOR_LT ? 0 : type->k;
+ delta = H5B_ANCHOR_LT==anchor ? 0 : type->k;
old->dirty += 1;
old->ndirty = BOUND (0, old->ndirty-delta, type->k);
old->nchildren = type->k;