diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/H5D.c | 1 | ||||
-rw-r--r-- | src/H5Dbtree.c | 1 | ||||
-rw-r--r-- | src/H5Dchunk.c | 3 | ||||
-rw-r--r-- | src/H5Dcontig.c | 1 | ||||
-rw-r--r-- | src/H5Ddbg.c | 1 | ||||
-rw-r--r-- | src/H5Ddeprec.c | 1 | ||||
-rw-r--r-- | src/H5Dfill.c | 1 | ||||
-rw-r--r-- | src/H5Dint.c | 4 | ||||
-rw-r--r-- | src/H5Dlayout.c | 2 | ||||
-rw-r--r-- | src/H5Dpkg.h | 1 | ||||
-rw-r--r-- | src/H5FDcore.c | 2 | ||||
-rw-r--r-- | src/H5FDdirect.c | 2 | ||||
-rw-r--r-- | src/H5FDlog.c | 2 | ||||
-rw-r--r-- | src/H5FDmpiposix.c | 2 | ||||
-rw-r--r-- | src/H5FDstdio.c | 4 | ||||
-rw-r--r-- | src/H5FDwindows.c | 2 | ||||
-rw-r--r-- | src/H5Fsuper_cache.c | 2 | ||||
-rw-r--r-- | src/H5O.c | 2 | ||||
-rw-r--r-- | src/H5Oalloc.c | 5 | ||||
-rw-r--r-- | src/H5Olayout.c | 7 | ||||
-rw-r--r-- | src/H5Oprivate.h | 2 | ||||
-rw-r--r-- | src/H5V.c | 69 | ||||
-rw-r--r-- | src/H5Vprivate.h | 2 |
23 files changed, 78 insertions, 41 deletions
@@ -27,7 +27,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5FLprivate.h" /* Free lists */ diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index a7e61ce..374c1b6 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -33,7 +33,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Bprivate.h" /* B-link trees */ #include "H5Dpkg.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 2e0b096..9b9298e 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -51,7 +51,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5FLprivate.h" /* Free Lists */ @@ -511,7 +510,7 @@ H5D_chunk_init(H5F_t *f, hid_t dxpl_id, const H5D_t *dset, hid_t dapl_id) if(dset->shared->layout.storage.u.chunk.ops->init && (dset->shared->layout.storage.u.chunk.ops->init)(&idx_info, dset->shared->space, dset->oloc.addr) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize indexing information") - /* Set the number of chunks in dataset */ + /* Set the number of chunks in dataset, etc. */ if(H5D_chunk_set_info(dset) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set # of chunks for dataset") diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index ca3b09e..567f4c9 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -34,7 +34,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5Fprivate.h" /* Files */ diff --git a/src/H5Ddbg.c b/src/H5Ddbg.c index 2feb773..fa4c54c 100644 --- a/src/H5Ddbg.c +++ b/src/H5Ddbg.c @@ -27,7 +27,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5Iprivate.h" /* IDs */ diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c index cecf4a2..b06bce1 100644 --- a/src/H5Ddeprec.c +++ b/src/H5Ddeprec.c @@ -41,7 +41,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5Iprivate.h" /* IDs */ diff --git a/src/H5Dfill.c b/src/H5Dfill.c index 7180c8c..f418a81 100644 --- a/src/H5Dfill.c +++ b/src/H5Dfill.c @@ -34,7 +34,6 @@ /* Headers */ /***********/ #include "H5private.h" /* Generic Functions */ -#include "H5ACprivate.h" /* Metadata cache */ #include "H5Dpkg.h" /* Dataset functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5FLprivate.h" /* Free Lists */ diff --git a/src/H5Dint.c b/src/H5Dint.c index cef551a..6253aa6 100644 --- a/src/H5Dint.c +++ b/src/H5Dint.c @@ -797,9 +797,11 @@ H5D_update_oh_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, hid_t dapl_id) if(NULL == (oh = H5O_pin(oloc, dxpl_id))) HGOTO_ERROR(H5E_DATASET, H5E_CANTPIN, FAIL, "unable to pin dataset object header") - /* Update the datatype and dataspace header messages */ + /* Write the dataspace header message */ if(H5S_append(file, dxpl_id, oh, dset->shared->space) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update dataspace header message") + + /* Write the datatype header message */ if(H5O_msg_append_oh(file, dxpl_id, oh, H5O_DTYPE_ID, H5O_MSG_FLAG_CONSTANT, 0, type) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update datatype header message") diff --git a/src/H5Dlayout.c b/src/H5Dlayout.c index 0245bec..6aa5b44 100644 --- a/src/H5Dlayout.c +++ b/src/H5Dlayout.c @@ -441,7 +441,7 @@ done: /*------------------------------------------------------------------------- * Function: H5D_layout_oh_write * - * Purpose: Read layout/pline/efl information for dataset + * Purpose: Write layout/pline/efl information for dataset * * Return: Success: SUCCEED * Failure: FAIL diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 38f1ab4..dbd495c 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -32,6 +32,7 @@ #include "H5Dprivate.h" /* Other private headers needed by this file */ +#include "H5ACprivate.h" /* Metadata cache */ #include "H5Gprivate.h" /* Groups */ #include "H5SLprivate.h" /* Skip lists */ #include "H5Tprivate.h" /* Datatypes */ diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 33b7380..e24f0e1 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -897,7 +897,7 @@ H5FD_core_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, hadd HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") - if (addr + size > file->eoa) + if((addr + size) > file->eoa) HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed") /* Read the part which is before the EOF marker */ diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c index fff31f3..8219941 100644 --- a/src/H5FDdirect.c +++ b/src/H5FDdirect.c @@ -928,7 +928,7 @@ H5FD_direct_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, ha HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - if (addr+size>file->eoa) + if((addr + size) > file->eoa) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") /* If the system doesn't require data to be aligned, read the data in diff --git a/src/H5FDlog.c b/src/H5FDlog.c index 0da5765..c21fc92 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -1056,7 +1056,7 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - if (addr+size>file->eoa) + if((addr + size) > file->eoa) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") /* Log the I/O information about the read */ diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c index ff5b118..d5e58e9 100644 --- a/src/H5FDmpiposix.c +++ b/src/H5FDmpiposix.c @@ -1131,7 +1131,7 @@ H5FD_mpiposix_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - if (addr+size>file->eoa) + if((addr + size) > file->eoa) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") #ifdef REPORT_IO diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c index 7fffbd4..b241f4d 100644 --- a/src/H5FDstdio.c +++ b/src/H5FDstdio.c @@ -791,8 +791,8 @@ H5FD_stdio_read(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, siz H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) if (REGION_OVERFLOW(addr, size)) H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) - if (addr+size>file->eoa) - H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) + if((addr + size) > file->eoa) + H5Epush_ret(func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1) /* Check easy cases */ if (0 == size) diff --git a/src/H5FDwindows.c b/src/H5FDwindows.c index aca03c8..47c7f2d 100644 --- a/src/H5FDwindows.c +++ b/src/H5FDwindows.c @@ -799,7 +799,7 @@ H5FD_windows_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined") if (REGION_OVERFLOW(addr, size)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") - if (addr+size>file->eoa) + if((addr + size) > file->eoa) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow") /* Seek to the correct location */ diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c index bb0ca40..7a0a585 100644 --- a/src/H5Fsuper_cache.c +++ b/src/H5Fsuper_cache.c @@ -182,7 +182,7 @@ H5F_sblock_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, const void UNUSED HDassert(fixed_size + variable_size <= sizeof(sbuf)); /* Read in variable-sized portion of superblock */ - if(H5FD_set_eoa(lf, H5FD_MEM_SUPER, (haddr_t)fixed_size + variable_size) < 0) + if(H5FD_set_eoa(lf, H5FD_MEM_SUPER, (haddr_t)(fixed_size + variable_size)) < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, NULL, "set end of space allocation request failed") if(H5FD_read(lf, dxpl_id, H5FD_MEM_SUPER, (haddr_t)fixed_size, variable_size, p) < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to read superblock") @@ -125,7 +125,7 @@ const H5O_msg_class_t *const H5O_msg_class_g[] = { H5O_MSG_DRVINFO, /*0x0014 Driver info settings */ H5O_MSG_AINFO, /*0x0015 Attribute information */ H5O_MSG_REFCOUNT, /*0x0016 Object's ref. count */ - H5O_MSG_UNKNOWN, /*0x0017 Placeholder for unknown message */ + H5O_MSG_UNKNOWN /*0x0017 Placeholder for unknown message */ }; /* Declare a free list to manage the H5O_t struct */ diff --git a/src/H5Oalloc.c b/src/H5Oalloc.c index 6b921f2..64d2f03 100644 --- a/src/H5Oalloc.c +++ b/src/H5Oalloc.c @@ -1128,7 +1128,10 @@ H5O_alloc(H5F_t *f, hid_t dxpl_id, H5O_t *oh, const H5O_msg_class_t *type, HDassert(mesg); /* Compute the size needed to store the message in the object header */ - if((raw_size = (type->raw_size)(f, FALSE, mesg)) >= H5O_MESG_MAX_SIZE) + raw_size = (type->raw_size)(f, FALSE, mesg); + if(0 == raw_size) + HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, FAIL, "can't compute object header message size") + if(raw_size >= H5O_MESG_MAX_SIZE) HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, FAIL, "object header message is too large") aligned_size = H5O_ALIGN_OH(oh, raw_size); diff --git a/src/H5Olayout.c b/src/H5Olayout.c index a34dcc2..67dbf4d 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -58,15 +58,15 @@ const H5O_msg_class_t H5O_MSG_LAYOUT[1] = {{ H5O_layout_encode, /*encode message */ H5O_layout_copy, /*copy the native value */ H5O_layout_size, /*size of message on disk */ - H5O_layout_reset, /*reset method */ + H5O_layout_reset, /*reset method */ H5O_layout_free, /*free the struct */ H5O_layout_delete, /* file delete method */ NULL, /* link method */ NULL, /*set share method */ NULL, /*can share method */ NULL, /* pre copy native value to file */ - H5O_layout_copy_file, /* copy native value to file */ - NULL, /* post copy native value to file */ + H5O_layout_copy_file, /* copy native value to file */ + NULL, /* post copy native value to file */ NULL, /* get creation index */ NULL, /* set creation index */ H5O_layout_debug /*debug the message */ @@ -589,6 +589,7 @@ H5O_layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst, FUNC_ENTER_NOAPI_NOINIT(H5O_layout_copy_file) /* check args */ + HDassert(file_src); HDassert(layout_src); HDassert(file_dst); diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h index 2a3ea95..66d4d3e 100644 --- a/src/H5Oprivate.h +++ b/src/H5Oprivate.h @@ -154,7 +154,7 @@ typedef struct H5O_copy_t { #define H5O_FILL_NEW_ID 0x0005 /* Fill Value Message. (New) */ #define H5O_LINK_ID 0x0006 /* Link Message. */ #define H5O_EFL_ID 0x0007 /* External File List Message */ -#define H5O_LAYOUT_ID 0x0008 /* Data Storage Layout Message. */ +#define H5O_LAYOUT_ID 0x0008 /* Data Layout Message. */ #define H5O_BOGUS_ID 0x0009 /* "Bogus" Message. */ #define H5O_GINFO_ID 0x000a /* Group info Message. */ #define H5O_PLINE_ID 0x000b /* Filter pipeline message. */ @@ -1132,6 +1132,47 @@ done: /*------------------------------------------------------------------------- + * Function: H5V_array_calc_pre + * + * Purpose: Given a linear offset in an array, the dimensions of that + * array and the pre-computed 'down' (accumulator) sizes, this + * function computes the coordinates of that offset in the array. + * + * The dimensionality of the whole array, and the coordinates is N. + * The array dimensions are TOTAL_SIZE and the coordinates + * are returned in COORD. The linear offset is in OFFSET. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Quincey Koziol + * Thursday, July 16, 2009 + * + *------------------------------------------------------------------------- + */ +herr_t +H5V_array_calc_pre(hsize_t offset, unsigned n, const hsize_t *total_size, + const hsize_t *down, hsize_t *coords) +{ + unsigned u; /* Local index variable */ + + FUNC_ENTER_NOAPI_NOFUNC(H5V_array_calc_pre) + + /* Sanity check */ + HDassert(n <= H5V_HYPER_NDIMS); + HDassert(total_size); + HDassert(coords); + + /* Compute the coordinates from the offset */ + for(u = 0; u < n; u++) { + coords[u] = offset / down[u]; + offset %= down[u]; + } /* end for */ + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5V_array_calc_pre() */ + + +/*------------------------------------------------------------------------- * Function: H5V_array_calc * * Purpose: Given a linear offset in an array and the dimensions of that @@ -1155,31 +1196,25 @@ herr_t H5V_array_calc(hsize_t offset, unsigned n, const hsize_t *total_size, hsize_t *coords) { hsize_t idx[H5V_HYPER_NDIMS]; /* Size of each dimension in bytes */ - hsize_t acc; /* Size accumulator */ - unsigned u; /* Local index variable */ - int i; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOFUNC(H5V_array_calc) + FUNC_ENTER_NOAPI(H5V_array_calc, FAIL) /* Sanity check */ - assert(n <= H5V_HYPER_NDIMS); - assert(total_size); - assert(coords); + HDassert(n <= H5V_HYPER_NDIMS); + HDassert(total_size); + HDassert(coords); /* Build the sizes of each dimension in the array */ - /* (From fastest to slowest) */ - for(i=(int)(n-1),acc=1; i>=0; i--) { - idx[i]=acc; - acc *= total_size[i]; - } /* end for */ + if(H5V_array_down(n, total_size, idx) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_BADVALUE, FAIL, "can't compute down sizes") /* Compute the coordinates from the offset */ - for(u=0; u<n; u++) { - coords[u]=offset/idx[u]; - offset %= idx[u]; - } /* end for */ + if(H5V_array_calc_pre(offset, n, total_size, idx, coords) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_BADVALUE, FAIL, "can't compute coordinates") - FUNC_LEAVE_NOAPI(SUCCEED) +done: + FUNC_LEAVE_NOAPI(ret_value) } /* end H5V_array_calc() */ diff --git a/src/H5Vprivate.h b/src/H5Vprivate.h index 2390584..e25ff85 100644 --- a/src/H5Vprivate.h +++ b/src/H5Vprivate.h @@ -83,6 +83,8 @@ H5_DLL hsize_t H5V_array_offset_pre(unsigned n, const hsize_t *acc, const hsize_t *offset); H5_DLL hsize_t H5V_array_offset(unsigned n, const hsize_t *total_size, const hsize_t *offset); +H5_DLL herr_t H5V_array_calc_pre(hsize_t offset, unsigned n, const hsize_t *total_size, + const hsize_t *down, hsize_t *coords); H5_DLL herr_t H5V_array_calc(hsize_t offset, unsigned n, const hsize_t *total_size, hsize_t *coords); H5_DLL herr_t H5V_chunk_index(unsigned ndims, const hsize_t *coord, |