summaryrefslogtreecommitdiffstats
path: root/src/H5HLpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2011-10-14 17:42:22 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2011-10-14 17:42:22 (GMT)
commitfe325096738d36828011ce02a0fc9b88ef3a660c (patch)
tree67d6617011d0e5b3f7e736f5838c4143ee2fe4f0 /src/H5HLpkg.h
parent3feb0d880d960f0da89047914cd4358f16b92144 (diff)
downloadhdf5-fe325096738d36828011ce02a0fc9b88ef3a660c.zip
hdf5-fe325096738d36828011ce02a0fc9b88ef3a660c.tar.gz
hdf5-fe325096738d36828011ce02a0fc9b88ef3a660c.tar.bz2
[svn-r21566] Description:
Bring r21561 from trunk back to 1.8 branch: Correct error in loading local heap prefix & data block from the file. Sometimes the local heap's prefix could be loaded before the data block (e.g. using H5Oget_info), but then when the data block was loaded later, the free list information would get lost, causing the heap's size to grow larger than necessary. This is Jira bug #HDFFV-7767 Tested on: Mac OS X/32 10.7.2 (amazon) w/debug (h5committest coming up)
Diffstat (limited to 'src/H5HLpkg.h')
-rw-r--r--src/H5HLpkg.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/H5HLpkg.h b/src/H5HLpkg.h
index b7e0ece..bf9be2c 100644
--- a/src/H5HLpkg.h
+++ b/src/H5HLpkg.h
@@ -90,18 +90,19 @@ struct H5HL_t {
size_t sizeof_size; /* Size of file sizes */
size_t sizeof_addr; /* Size of file addresses */
hbool_t single_cache_obj; /* Indicate if the heap is a single object in the cache */
+ H5HL_free_t *freelist; /*the free list */
/* Prefix-specific fields */
H5HL_prfx_t *prfx; /* The prefix object for the heap */
haddr_t prfx_addr; /* address of heap prefix */
size_t prfx_size; /* size of heap prefix */
+ hsize_t free_block; /* Address of first free block */
/* Data block-specific fields */
H5HL_dblk_t *dblk; /* The data block object for the heap */
haddr_t dblk_addr; /* address of data block */
size_t dblk_size; /* size of heap data block on disk and in mem */
uint8_t *dblk_image; /* The data block image */
- H5HL_free_t *freelist; /*the free list */
};
/* Struct for heap data block */
@@ -127,15 +128,12 @@ typedef struct H5HL_cache_prfx_ud_t {
size_t sizeof_prfx; /* Size of heap prefix */
/* Upwards */
- hbool_t loaded; /* Whether prefix was loaded from file */
- hsize_t free_block; /* First free block in heap */
} H5HL_cache_prfx_ud_t;
/* Callback information for loading local heap data block from disk */
typedef struct H5HL_cache_dblk_ud_t {
/* Downwards */
H5HL_t *heap; /* Local heap */
- hsize_t free_block; /* First free block in heap */
/* Upwards */
hbool_t loaded; /* Whether data block was loaded from file */