From 90191135877078c85ec28698dbaee65188770dca Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Tue, 12 Nov 2024 05:34:25 -0800 Subject: [PATCH] Make H5F_LIBVER_LATEST a real enum value (#5083) It was formerly a macro, but is now an enum value with the same value as the latest numbered API. --- java/src/hdf/hdf5lib/HDF5Constants.java | 8 ++++---- java/src/jni/h5Constants.c | 8 ++++---- release_docs/RELEASE.txt | 11 +++++++++++ src/H5Fpublic.h | 15 +++++++-------- src/H5Ppublic.h | 6 +++--- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/java/src/hdf/hdf5lib/HDF5Constants.java b/java/src/hdf/hdf5lib/HDF5Constants.java index 7ace14f8c2f..57f653865da 100644 --- a/java/src/hdf/hdf5lib/HDF5Constants.java +++ b/java/src/hdf/hdf5lib/HDF5Constants.java @@ -575,10 +575,10 @@ public class HDF5Constants { /** */ public static final int H5F_LIBVER_V200 = H5F_LIBVER_V200(); /** */ - public static final int H5F_LIBVER_NBOUNDS = H5F_LIBVER_NBOUNDS(); - /** */ public static final int H5F_LIBVER_LATEST = H5F_LIBVER_LATEST(); /** */ + public static final int H5F_LIBVER_NBOUNDS = H5F_LIBVER_NBOUNDS(); + /** */ public static final int H5F_OBJ_ALL = H5F_OBJ_ALL(); /** */ public static final int H5F_OBJ_ATTR = H5F_OBJ_ATTR(); @@ -2080,10 +2080,10 @@ public class HDF5Constants { private static native final int H5F_LIBVER_V200(); - private static native final int H5F_LIBVER_NBOUNDS(); - private static native final int H5F_LIBVER_LATEST(); + private static native final int H5F_LIBVER_NBOUNDS(); + private static native final int H5F_OBJ_ALL(); private static native final int H5F_OBJ_ATTR(); diff --git a/java/src/jni/h5Constants.c b/java/src/jni/h5Constants.c index c9fc5c142eb..4d3339c494a 100644 --- a/java/src/jni/h5Constants.c +++ b/java/src/jni/h5Constants.c @@ -1309,14 +1309,14 @@ Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1V200(JNIEnv *env, jclass cls) return H5F_LIBVER_V200; } JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1NBOUNDS(JNIEnv *env, jclass cls) +Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1LATEST(JNIEnv *env, jclass cls) { - return H5F_LIBVER_NBOUNDS; + return H5F_LIBVER_LATEST; } JNIEXPORT jint JNICALL -Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1LATEST(JNIEnv *env, jclass cls) +Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1NBOUNDS(JNIEnv *env, jclass cls) { - return H5F_LIBVER_LATEST; + return H5F_LIBVER_NBOUNDS; } JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5F_1OBJ_1ALL(JNIEnv *env, jclass cls) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index b9540269b21..b9c461cd318 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -156,6 +156,17 @@ New Features Library: -------- + - H5F_LIBVER_LATEST is now an enum value + + This was previously #defined to the latest H5F_libver_t API version, but + is now an enum value with an integer value equal to the latest H5F_libver_t + API version's value. e.g.: + + + H5F_LIBVER_V200 = 5, + H5F_LIBVER_LATEST = 5, + + - Added support for complex number datatypes Support for the C99 "float _Complex", "double _Complex" and "long double _Complex" diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 9a8a375c005..b6d72a9abae 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -163,17 +163,16 @@ typedef struct H5F_sect_info_t { */ typedef enum H5F_libver_t { H5F_LIBVER_ERROR = -1, - H5F_LIBVER_EARLIEST = 0, /**< Use the earliest possible format for storing objects */ - H5F_LIBVER_V18 = 1, /**< Use the latest v18 format for storing objects */ - H5F_LIBVER_V110 = 2, /**< Use the latest v110 format for storing objects */ - H5F_LIBVER_V112 = 3, /**< Use the latest v112 format for storing objects */ - H5F_LIBVER_V114 = 4, /**< Use the latest v114 format for storing objects */ - H5F_LIBVER_V200 = 5, /**< Use the latest v200 format for storing objects */ + H5F_LIBVER_EARLIEST = 0, /**< Use the earliest possible file format for storing objects */ + H5F_LIBVER_V18 = 1, /**< Use the 1.8 file format for storing objects */ + H5F_LIBVER_V110 = 2, /**< Use the 1.10 file format for storing objects */ + H5F_LIBVER_V112 = 3, /**< Use the 1.12 file format for storing objects */ + H5F_LIBVER_V114 = 4, /**< Use the 1.14 file format for storing objects */ + H5F_LIBVER_V200 = 5, /**< Use the 2.0 file format for storing objects */ + H5F_LIBVER_LATEST = 5, /**< Use the latest file format for storing objects */ H5F_LIBVER_NBOUNDS /**< Sentinel */ } H5F_libver_t; -#define H5F_LIBVER_LATEST H5F_LIBVER_V200 - /** * File space handling strategy */ diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index bdb172bf8dc..4b1f4a5ef48 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -4967,9 +4967,9 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref); * enumerated values in the #H5F_libver_t struct, which is * defined in H5Fpublic.h. * - * The macro #H5F_LIBVER_LATEST is aliased to the highest - * enumerated value in #H5F_libver_t, indicating that this is - * currently the latest format available. + * #H5F_LIBVER_LATEST is equivalent to the highest explicitly numbered + * API value in #H5F_libver_t, indicating that this is currently the + * latest format available. * * The library supports the following pairs of (\p low, \p high) * combinations as derived from the values in #H5F_libver_t: