summaryrefslogtreecommitdiffstats
path: root/src/H5Pint.c
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2022-03-06 23:33:00 (GMT)
committerGitHub <noreply@github.com>2022-03-06 23:33:00 (GMT)
commit78375882485a99a81caa933928ed08d7a38ef88b (patch)
treef18c41d7794d546b6562dd2aa36932c78f00a16a /src/H5Pint.c
parent7e176db164d1a6f944e703c612c4952b15d333f4 (diff)
downloadhdf5-78375882485a99a81caa933928ed08d7a38ef88b.zip
hdf5-78375882485a99a81caa933928ed08d7a38ef88b.tar.gz
hdf5-78375882485a99a81caa933928ed08d7a38ef88b.tar.bz2
VFD SWMR: normalization with develop (#1472)
Much normalization with develop. Still needs tools changes wrt VFD plugins.
Diffstat (limited to 'src/H5Pint.c')
-rw-r--r--src/H5Pint.c369
1 files changed, 215 insertions, 154 deletions
diff --git a/src/H5Pint.c b/src/H5Pint.c
index 90fd1c2..c0f5ee1 100644
--- a/src/H5Pint.c
+++ b/src/H5Pint.c
@@ -123,77 +123,78 @@ static herr_t H5P__free_del_name_cb(void *item, void H5_ATTR_UNUSED *key, void H
/*
* Predefined property list classes. These are initialized at runtime by
- * H5P__init_package() in this source file.
+ * H5P_init() in this source file.
*/
-hid_t H5P_CLS_ROOT_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_ROOT_g = NULL;
-hid_t H5P_CLS_OBJECT_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_OBJECT_CREATE_g = NULL;
-hid_t H5P_CLS_FILE_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_FILE_CREATE_g = NULL;
-hid_t H5P_CLS_FILE_ACCESS_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_FILE_ACCESS_g = NULL;
-hid_t H5P_CLS_DATASET_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_DATASET_CREATE_g = NULL;
+hid_t H5P_CLS_ROOT_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_ROOT_g = NULL;
+
+hid_t H5P_CLS_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_ATTRIBUTE_ACCESS_g = NULL;
+hid_t H5P_CLS_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_ATTRIBUTE_CREATE_g = NULL;
hid_t H5P_CLS_DATASET_ACCESS_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_DATASET_ACCESS_g = NULL;
+hid_t H5P_CLS_DATASET_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_DATASET_CREATE_g = NULL;
hid_t H5P_CLS_DATASET_XFER_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_DATASET_XFER_g = NULL;
+hid_t H5P_CLS_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_DATATYPE_ACCESS_g = NULL;
+hid_t H5P_CLS_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_DATATYPE_CREATE_g = NULL;
+hid_t H5P_CLS_FILE_ACCESS_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_FILE_ACCESS_g = NULL;
+hid_t H5P_CLS_FILE_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_FILE_CREATE_g = NULL;
hid_t H5P_CLS_FILE_MOUNT_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_FILE_MOUNT_g = NULL;
-hid_t H5P_CLS_GROUP_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_GROUP_CREATE_g = NULL;
hid_t H5P_CLS_GROUP_ACCESS_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_GROUP_ACCESS_g = NULL;
-hid_t H5P_CLS_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_DATATYPE_CREATE_g = NULL;
-hid_t H5P_CLS_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_DATATYPE_ACCESS_g = NULL;
-hid_t H5P_CLS_MAP_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_MAP_CREATE_g = NULL;
+hid_t H5P_CLS_GROUP_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_GROUP_CREATE_g = NULL;
+hid_t H5P_CLS_LINK_ACCESS_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_LINK_ACCESS_g = NULL;
+hid_t H5P_CLS_LINK_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_LINK_CREATE_g = NULL;
hid_t H5P_CLS_MAP_ACCESS_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_MAP_ACCESS_g = NULL;
-hid_t H5P_CLS_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_ATTRIBUTE_CREATE_g = NULL;
-hid_t H5P_CLS_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_ATTRIBUTE_ACCESS_g = NULL;
+hid_t H5P_CLS_MAP_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_MAP_CREATE_g = NULL;
hid_t H5P_CLS_OBJECT_COPY_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_OBJECT_COPY_g = NULL;
-hid_t H5P_CLS_LINK_CREATE_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_LINK_CREATE_g = NULL;
-hid_t H5P_CLS_LINK_ACCESS_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_LINK_ACCESS_g = NULL;
+hid_t H5P_CLS_OBJECT_CREATE_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_OBJECT_CREATE_g = NULL;
+hid_t H5P_CLS_REFERENCE_ACCESS_ID_g = H5I_INVALID_HID;
+H5P_genclass_t *H5P_CLS_REFERENCE_ACCESS_g = NULL;
hid_t H5P_CLS_STRING_CREATE_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_STRING_CREATE_g = NULL;
hid_t H5P_CLS_VOL_INITIALIZE_ID_g = H5I_INVALID_HID;
H5P_genclass_t *H5P_CLS_VOL_INITIALIZE_g = NULL;
-hid_t H5P_CLS_REFERENCE_ACCESS_ID_g = H5I_INVALID_HID;
-H5P_genclass_t *H5P_CLS_REFERENCE_ACCESS_g = NULL;
/*
* Predefined property lists for each predefined class. These are initialized
- * at runtime by H5P__init_package() in this source file.
+ * at runtime by H5P_init() in this source file.
*/
-hid_t H5P_LST_FILE_CREATE_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_FILE_ACCESS_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_FILE_ACCESS_ANY_VFD_g = H5I_INVALID_HID;
-hid_t H5P_LST_DATASET_CREATE_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_DATASET_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_DATASET_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_DATASET_XFER_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_FILE_ACCESS_ANY_VFD_g = H5I_INVALID_HID;
+hid_t H5P_LST_FILE_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_FILE_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_FILE_MOUNT_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_GROUP_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_GROUP_ACCESS_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_MAP_CREATE_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_GROUP_CREATE_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_LINK_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_LINK_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_MAP_ACCESS_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_MAP_CREATE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_OBJECT_COPY_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_LINK_CREATE_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_LINK_ACCESS_ID_g = H5I_INVALID_HID;
-hid_t H5P_LST_VOL_INITIALIZE_ID_g = H5I_INVALID_HID;
hid_t H5P_LST_REFERENCE_ACCESS_ID_g = H5I_INVALID_HID;
+hid_t H5P_LST_VOL_INITIALIZE_ID_g = H5I_INVALID_HID;
/* Root property list class library initialization object */
const H5P_libclass_t H5P_CLS_ROOT[1] = {{
@@ -413,48 +414,29 @@ static const H5I_class_t H5I_GENPROPLST_CLS[1] = {{
}};
/*-------------------------------------------------------------------------
- * Function: H5P_init
+ * Function: H5P_init_phase1
*
- * Purpose: Initialize the interface from some other layer.
+ * Purpose: Initialize the interface from some other layer. This should
+ * be followed with a call to H5P_init_phase2 after the H5P
+ * interface is completely setup.
*
- * Return: Success: non-negative
- * Failure: negative
+ * Return: Success: non-negative
+ * Failure: negative
*
- * Programmer: Quincey Koziol
+ * Programmer: Quincey Koziol
* Saturday, March 4, 2000
*
*-------------------------------------------------------------------------
*/
herr_t
-H5P_init(void)
+H5P_init_phase1(void)
{
+ size_t tot_init = 0; /* Total # of classes initialized */
+ size_t pass_init; /* # of classes initialized in each pass */
+ size_t u;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
- /* FUNC_ENTER() does all the work */
-
-done:
- FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5P_init() */
-
-/*--------------------------------------------------------------------------
-NAME
- H5P__init_package -- Initialize interface-specific information
-USAGE
- herr_t H5P__init_package()
-RETURNS
- Non-negative on success/Negative on failure
-DESCRIPTION
- Initializes any interface-specific data or routines.
---------------------------------------------------------------------------*/
-herr_t
-H5P__init_package(void)
-{
- size_t tot_init; /* Total # of classes initialized */
- size_t pass_init; /* # of classes initialized in each pass */
- herr_t ret_value = SUCCEED; /* Return value */
-
- FUNC_ENTER_PACKAGE
/* Sanity check */
HDcompile_assert(H5P_TYPE_REFERENCE_ACCESS == (H5P_TYPE_MAX_TYPE - 1));
@@ -473,8 +455,6 @@ H5P__init_package(void)
*/
tot_init = 0;
do {
- size_t u; /* Local index variable */
-
/* Reset pass initialization counter */
pass_init = 0;
@@ -524,8 +504,59 @@ H5P__init_package(void)
HDassert(tot_init == NELMTS(init_class));
done:
+ if (ret_value < 0 && tot_init > 0) {
+ /* First uninitialize all default property lists */
+ H5I_clear_type(H5I_GENPROP_LST, FALSE, FALSE);
+
+ /* Then uninitialize any initialized libclass */
+ for (u = 0; u < NELMTS(init_class); u++) {
+ H5P_libclass_t const *lib_class = init_class[u]; /* Current class to operate on */
+
+ HDassert(lib_class->class_id);
+ if (*lib_class->class_id >= 0) {
+ /* Close the class ID */
+ if (H5I_dec_ref(*lib_class->class_id) < 0)
+ HDONE_ERROR(H5E_PLIST, H5E_CLOSEERROR, FAIL, "unable to close property list class ID")
+ }
+ else if (lib_class->pclass && *lib_class->pclass) {
+ /* Close a half-initialized pclass */
+ if (H5P__close_class(*lib_class->pclass) < 0)
+ HDONE_ERROR(H5E_PLIST, H5E_CLOSEERROR, FAIL, "unable to close property list class")
+ }
+ }
+ }
+
FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5P__init_package() */
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5P_init_phase2
+ *
+ * Purpose: Finish initializing the interface from some other package.
+ *
+ * Note: This is broken out as a separate routine so that the
+ * library's default VFL driver can be chosen and initialized
+ * after the entire H5P interface has been initialized.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5P_init_phase2(void)
+{
+ herr_t ret_value = SUCCEED;
+
+ FUNC_ENTER_NOAPI(FAIL)
+
+ /* Set up the default VFL driver */
+ if (H5P__facc_set_def_driver() < 0)
+ HGOTO_ERROR(H5E_VFL, H5E_CANTSET, FAIL, "unable to set default VFL driver")
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value)
+} /* end H5P_init_phase2() */
/*--------------------------------------------------------------------------
NAME
@@ -551,77 +582,109 @@ H5P_term_package(void)
FUNC_ENTER_NOAPI_NOINIT_NOERR
- if (H5_PKG_INIT_VAR) {
- int64_t nlist, nclass;
-
- /* Destroy HDF5 library property classes & lists */
-
- /* Check if there are any open property list classes or lists */
- nclass = H5I_nmembers(H5I_GENPROP_CLS);
- nlist = H5I_nmembers(H5I_GENPROP_LST);
-
- /* If there are any open classes or groups, attempt to get rid of them. */
- if ((nclass + nlist) > 0) {
- /* Clear the lists */
- if (nlist > 0) {
- (void)H5I_clear_type(H5I_GENPROP_LST, FALSE, FALSE);
-
- /* Reset the default property lists, if they've been closed */
- if (H5I_nmembers(H5I_GENPROP_LST) == 0) {
- H5P_LST_FILE_CREATE_ID_g = H5P_LST_FILE_ACCESS_ID_g = H5P_LST_DATASET_CREATE_ID_g =
- H5P_LST_DATASET_ACCESS_ID_g = H5P_LST_DATASET_XFER_ID_g = H5P_LST_GROUP_CREATE_ID_g =
- H5P_LST_GROUP_ACCESS_ID_g = H5P_LST_DATATYPE_CREATE_ID_g =
- H5P_LST_DATATYPE_ACCESS_ID_g = H5P_LST_MAP_CREATE_ID_g =
- H5P_LST_MAP_ACCESS_ID_g = H5P_LST_ATTRIBUTE_CREATE_ID_g =
- H5P_LST_ATTRIBUTE_ACCESS_ID_g = H5P_LST_OBJECT_COPY_ID_g =
- H5P_LST_LINK_CREATE_ID_g = H5P_LST_LINK_ACCESS_ID_g =
- H5P_LST_VOL_INITIALIZE_ID_g = H5P_LST_REFERENCE_ACCESS_ID_g =
- H5P_LST_FILE_MOUNT_ID_g = H5I_INVALID_HID;
- } /* end if */
- } /* end if */
-
- /* Only attempt to close the classes after all the lists are closed */
- if (nlist == 0 && nclass > 0) {
- (void)H5I_clear_type(H5I_GENPROP_CLS, FALSE, FALSE);
-
- /* Reset the default property classes, if they've been closed */
- if (H5I_nmembers(H5I_GENPROP_CLS) == 0) {
- H5P_CLS_ROOT_g = H5P_CLS_OBJECT_CREATE_g = H5P_CLS_FILE_CREATE_g = H5P_CLS_FILE_ACCESS_g =
- H5P_CLS_DATASET_CREATE_g = H5P_CLS_DATASET_ACCESS_g = H5P_CLS_DATASET_XFER_g =
- H5P_CLS_GROUP_CREATE_g = H5P_CLS_GROUP_ACCESS_g = H5P_CLS_DATATYPE_CREATE_g =
- H5P_CLS_DATATYPE_ACCESS_g = H5P_CLS_MAP_CREATE_g = H5P_CLS_MAP_ACCESS_g =
- H5P_CLS_STRING_CREATE_g = H5P_CLS_ATTRIBUTE_CREATE_g =
- H5P_CLS_ATTRIBUTE_ACCESS_g = H5P_CLS_OBJECT_COPY_g =
- H5P_CLS_LINK_CREATE_g = H5P_CLS_LINK_ACCESS_g =
- H5P_CLS_VOL_INITIALIZE_g = H5P_CLS_REFERENCE_ACCESS_g =
- H5P_CLS_FILE_MOUNT_g = NULL;
-
- H5P_CLS_ROOT_ID_g = H5P_CLS_OBJECT_CREATE_ID_g = H5P_CLS_FILE_CREATE_ID_g =
- H5P_CLS_FILE_ACCESS_ID_g = H5P_CLS_DATASET_CREATE_ID_g = H5P_CLS_DATASET_ACCESS_ID_g =
- H5P_CLS_DATASET_XFER_ID_g = H5P_CLS_GROUP_CREATE_ID_g =
- H5P_CLS_GROUP_ACCESS_ID_g = H5P_CLS_DATATYPE_CREATE_ID_g =
- H5P_CLS_DATATYPE_ACCESS_ID_g = H5P_CLS_MAP_CREATE_ID_g =
- H5P_CLS_MAP_ACCESS_ID_g = H5P_CLS_STRING_CREATE_ID_g =
- H5P_CLS_ATTRIBUTE_CREATE_ID_g = H5P_CLS_ATTRIBUTE_ACCESS_ID_g =
- H5P_CLS_OBJECT_COPY_ID_g = H5P_CLS_LINK_CREATE_ID_g =
- H5P_CLS_LINK_ACCESS_ID_g = H5P_CLS_VOL_INITIALIZE_ID_g =
- H5P_CLS_REFERENCE_ACCESS_ID_g =
- H5P_CLS_FILE_MOUNT_ID_g = H5I_INVALID_HID;
- } /* end if */
- } /* end if */
+ int64_t nlist, nclass;
+
+ /* Destroy HDF5 library property classes & lists */
+
+ /* Check if there are any open property list classes or lists */
+ nclass = H5I_nmembers(H5I_GENPROP_CLS);
+ nlist = H5I_nmembers(H5I_GENPROP_LST);
+
+ /* If there are any open classes or groups, attempt to get rid of them. */
+ if ((nclass + nlist) > 0) {
+ /* Clear the lists */
+ if (nlist > 0) {
+ (void)H5I_clear_type(H5I_GENPROP_LST, FALSE, FALSE);
+
+ /* Reset the default property lists, if they've been closed */
+ if (H5I_nmembers(H5I_GENPROP_LST) == 0) {
+ H5P_LST_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_DATASET_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_DATASET_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_DATASET_XFER_ID_g = H5I_INVALID_HID;
+ H5P_LST_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_FILE_ACCESS_ANY_VFD_g = H5I_INVALID_HID;
+ H5P_LST_FILE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_FILE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_FILE_MOUNT_ID_g = H5I_INVALID_HID;
+ H5P_LST_GROUP_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_GROUP_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_LINK_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_LINK_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_MAP_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_MAP_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_OBJECT_COPY_ID_g = H5I_INVALID_HID;
+ H5P_LST_REFERENCE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_LST_VOL_INITIALIZE_ID_g = H5I_INVALID_HID;
+ }
+ }
- n++; /*H5I*/
+ /* Only attempt to close the classes after all the lists are closed */
+ if (nlist == 0 && nclass > 0) {
+ (void)H5I_clear_type(H5I_GENPROP_CLS, FALSE, FALSE);
+
+ /* Reset the default property classes and IDs if they've been closed */
+ if (H5I_nmembers(H5I_GENPROP_CLS) == 0) {
+ H5P_CLS_ROOT_g = NULL;
+
+ H5P_CLS_ATTRIBUTE_ACCESS_g = NULL;
+ H5P_CLS_ATTRIBUTE_CREATE_g = NULL;
+ H5P_CLS_DATASET_ACCESS_g = NULL;
+ H5P_CLS_DATASET_CREATE_g = NULL;
+ H5P_CLS_DATASET_XFER_g = NULL;
+ H5P_CLS_DATATYPE_ACCESS_g = NULL;
+ H5P_CLS_DATATYPE_CREATE_g = NULL;
+ H5P_CLS_FILE_ACCESS_g = NULL;
+ H5P_CLS_FILE_CREATE_g = NULL;
+ H5P_CLS_FILE_MOUNT_g = NULL;
+ H5P_CLS_GROUP_ACCESS_g = NULL;
+ H5P_CLS_GROUP_CREATE_g = NULL;
+ H5P_CLS_LINK_ACCESS_g = NULL;
+ H5P_CLS_LINK_CREATE_g = NULL;
+ H5P_CLS_MAP_ACCESS_g = NULL;
+ H5P_CLS_MAP_CREATE_g = NULL;
+ H5P_CLS_OBJECT_COPY_g = NULL;
+ H5P_CLS_OBJECT_CREATE_g = NULL;
+ H5P_CLS_REFERENCE_ACCESS_g = NULL;
+ H5P_CLS_STRING_CREATE_g = NULL;
+ H5P_CLS_VOL_INITIALIZE_g = NULL;
+
+ H5P_CLS_ROOT_ID_g = H5I_INVALID_HID;
+
+ H5P_CLS_ATTRIBUTE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_ATTRIBUTE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_DATASET_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_DATASET_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_DATASET_XFER_ID_g = H5I_INVALID_HID;
+ H5P_CLS_DATATYPE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_DATATYPE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_LST_FILE_ACCESS_ANY_VFD_g = H5I_INVALID_HID;
+ H5P_CLS_FILE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_FILE_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_FILE_MOUNT_ID_g = H5I_INVALID_HID;
+ H5P_CLS_GROUP_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_GROUP_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_LINK_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_LINK_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_MAP_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_MAP_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_OBJECT_COPY_ID_g = H5I_INVALID_HID;
+ H5P_CLS_OBJECT_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_REFERENCE_ACCESS_ID_g = H5I_INVALID_HID;
+ H5P_CLS_STRING_CREATE_ID_g = H5I_INVALID_HID;
+ H5P_CLS_VOL_INITIALIZE_ID_g = H5I_INVALID_HID;
+ }
}
- else {
- /* Destroy the property list and class id groups */
- n += (H5I_dec_type_ref(H5I_GENPROP_LST) > 0);
- n += (H5I_dec_type_ref(H5I_GENPROP_CLS) > 0);
- /* Mark closed */
- if (0 == n)
- H5_PKG_INIT_VAR = FALSE;
- } /* end else */
- } /* end if */
+ n++; /*H5I*/
+ }
+ else {
+ /* Destroy the property list and class id groups */
+ n += (H5I_dec_type_ref(H5I_GENPROP_LST) > 0);
+ n += (H5I_dec_type_ref(H5I_GENPROP_CLS) > 0);
+ } /* end else */
FUNC_LEAVE_NOAPI(n)
} /* end H5P_term_package() */
@@ -3243,7 +3306,7 @@ done:
NAME
H5P_exist_plist
PURPOSE
- Internal routine to query the existance of a property in a property list.
+ Internal routine to query the existence of a property in a property list.
USAGE
htri_t H5P_exist_plist(plist, name)
const H5P_genplist_t *plist; IN: Property list to check
@@ -3302,7 +3365,7 @@ done:
NAME
H5P__exist_pclass
PURPOSE
- Internal routine to query the existance of a property in a property class.
+ Internal routine to query the existence of a property in a property class.
USAGE
herr_t H5P__exist_pclass(pclass, name)
H5P_genclass_t *pclass; IN: Property class to check
@@ -3502,7 +3565,7 @@ H5P_get_nprops_pclass(const H5P_genclass_t *pclass, size_t *nprops, hbool_t recu
{
herr_t ret_value = SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(FAIL)
+ FUNC_ENTER_NOAPI_NOERR
HDassert(pclass);
HDassert(nprops);
@@ -3517,7 +3580,6 @@ H5P_get_nprops_pclass(const H5P_genclass_t *pclass, size_t *nprops, hbool_t recu
*nprops += pclass->nprops;
} /* end while */
-done:
FUNC_LEAVE_NOAPI(ret_value)
} /* H5P_get_nprops_pclass() */
@@ -3818,7 +3880,7 @@ H5P__cmp_plist_cb(H5P_genprop_t *prop, void *_udata)
/* Check if the property exists in the second property list */
if ((prop2_exist = H5P_exist_plist(udata->plist2, prop->name)) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, H5_ITER_ERROR, "can't lookup existance of property?")
+ HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, H5_ITER_ERROR, "can't lookup existence of property?")
if (prop2_exist) {
const H5P_genprop_t *prop2; /* Pointer to property in second plist */
@@ -3948,7 +4010,7 @@ H5P_class_isa(const H5P_genclass_t *pclass1, const H5P_genclass_t *pclass2)
{
htri_t ret_value = FAIL; /* Return value */
- FUNC_ENTER_NOAPI(FAIL)
+ FUNC_ENTER_NOAPI_NOERR
HDassert(pclass1);
HDassert(pclass2);
@@ -4769,7 +4831,7 @@ done:
Returns non-negative on success, negative on failure.
DESCRIPTION
Removes a property from a property list. Both properties which were
- in existance when the property list was created (i.e. properties registered
+ in existence when the property list was created (i.e. properties registered
with H5Pregister2) and properties added to the list after it was created
(i.e. added with H5Pinsert2) may be removed from a property list.
Properties do not need to be removed a property list before the list itself
@@ -4850,7 +4912,7 @@ H5P__copy_prop_plist(hid_t dst_id, hid_t src_id, const char *name)
NULL == (dst_plist = (H5P_genplist_t *)H5I_object(dst_id)))
HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, FAIL, "property object doesn't exist")
- /* If the property exists in the destination alread */
+ /* If the property exists in the destination already */
if (NULL != H5P__find_prop_plist(dst_plist, name)) {
/* Delete the property from the destination list, calling the 'close' callback if necessary */
if (H5P_remove(dst_plist, name) < 0)
@@ -5250,14 +5312,13 @@ H5P_get_class_name(H5P_genclass_t *pclass)
{
char *ret_value = NULL; /* Return value */
- FUNC_ENTER_NOAPI(NULL)
+ FUNC_ENTER_NOAPI_NOERR
HDassert(pclass);
/* Get class name */
ret_value = H5MM_xstrdup(pclass->name);
-done:
FUNC_LEAVE_NOAPI(ret_value)
} /* H5P_get_class_name() */