summaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2021-10-09 14:23:49 (GMT)
committerGitHub <noreply@github.com>2021-10-09 14:23:49 (GMT)
commit8299373d41b74d988196b80f55f25efe43b7531c (patch)
treec220c579dba66ae8b3dcf564d16a481411fea10c /java/src
parent88d6015ee1679bd383c15ba863c5d1f1e6ad9f56 (diff)
downloadhdf5-8299373d41b74d988196b80f55f25efe43b7531c.zip
hdf5-8299373d41b74d988196b80f55f25efe43b7531c.tar.gz
hdf5-8299373d41b74d988196b80f55f25efe43b7531c.tar.bz2
1.10 Merge Add missing dataset reference text #1081 (#1083)
* Merge Add missing dataset reference text #1081 * Only print name if not printing data
Diffstat (limited to 'java/src')
-rw-r--r--java/src/jni/h5util.c58
-rw-r--r--java/src/jni/h5util.h1
2 files changed, 46 insertions, 13 deletions
diff --git a/java/src/jni/h5util.c b/java/src/jni/h5util.c
index c05fee6..9f0bbfe 100644
--- a/java/src/jni/h5util.c
+++ b/java/src/jni/h5util.c
@@ -224,7 +224,7 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
case sizeof(float): {
float tmp_float = 0.0f;
- sscanf(token, "%f", &tmp_float);
+ HDsscanf(token, "%f", &tmp_float);
HDmemcpy(cptr, &tmp_float, sizeof(float));
break;
}
@@ -232,7 +232,7 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
case sizeof(double): {
double tmp_double = 0.0;
- sscanf(token, "%lf", &tmp_double);
+ HDsscanf(token, "%lf", &tmp_double);
HDmemcpy(cptr, &tmp_double, sizeof(double));
break;
}
@@ -240,7 +240,7 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
case sizeof(long double): {
long double tmp_ldouble = 0.0;
- sscanf(token, "%Lg", &tmp_ldouble);
+ HDsscanf(token, "%Lg", &tmp_ldouble);
HDmemcpy(cptr, &tmp_ldouble, sizeof(long double));
break;
}
@@ -288,11 +288,11 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
signed char tmp_char = 0;
if (H5T_SGN_NONE == nsign) {
- sscanf(token, "%hhu", &tmp_uchar);
+ HDsscanf(token, "%hhu", &tmp_uchar);
HDmemcpy(cptr, &tmp_uchar, sizeof(unsigned char));
}
else {
- sscanf(token, "%hhd", &tmp_char);
+ HDsscanf(token, "%hhd", &tmp_char);
HDmemcpy(cptr, &tmp_char, sizeof(char));
}
@@ -304,11 +304,11 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
short tmp_short = 0;
if (H5T_SGN_NONE == nsign) {
- sscanf(token, "%hu", &tmp_ushort);
+ HDsscanf(token, "%hu", &tmp_ushort);
HDmemcpy(&tmp_ushort, cptr, sizeof(unsigned short));
}
else {
- sscanf(token, "%hd", &tmp_short);
+ HDsscanf(token, "%hd", &tmp_short);
HDmemcpy(&tmp_short, cptr, sizeof(short));
}
@@ -320,11 +320,11 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
int tmp_int = 0;
if (H5T_SGN_NONE == nsign) {
- sscanf(token, "%u", &tmp_uint);
+ HDsscanf(token, "%u", &tmp_uint);
HDmemcpy(cptr, &tmp_uint, sizeof(unsigned int));
}
else {
- sscanf(token, "%d", &tmp_int);
+ HDsscanf(token, "%d", &tmp_int);
HDmemcpy(cptr, &tmp_int, sizeof(int));
}
@@ -337,11 +337,11 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
long tmp_long = 0;
if (H5T_SGN_NONE == nsign) {
- sscanf(token, "%lu", &tmp_ulong);
+ HDsscanf(token, "%lu", &tmp_ulong);
HDmemcpy(cptr, &tmp_ulong, sizeof(unsigned long));
}
else {
- sscanf(token, "%ld", &tmp_long);
+ HDsscanf(token, "%ld", &tmp_long);
HDmemcpy(cptr, &tmp_long, sizeof(long));
}
@@ -354,11 +354,11 @@ h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_
long long tmp_llong = 0;
if (H5T_SGN_NONE == nsign) {
- sscanf(token, fmt_ullong, &tmp_ullong);
+ HDsscanf(token, fmt_ullong, &tmp_ullong);
HDmemcpy(cptr, &tmp_ullong, sizeof(unsigned long long));
}
else {
- sscanf(token, fmt_llong, &tmp_llong);
+ HDsscanf(token, fmt_llong, &tmp_llong);
HDmemcpy(cptr, &tmp_llong, sizeof(long long));
}
@@ -640,6 +640,34 @@ done:
return retVal;
} /* end h5str_convert */
+/*-------------------------------------------------------------------------
+ * Function: h5str_sprint_reference
+ *
+ * Purpose: Object reference -- show the name of the referenced object.
+ *
+ * Return: SUCCEED or FAIL
+ *-------------------------------------------------------------------------
+ */
+int
+h5str_sprint_reference(JNIEnv *env, h5str_t *out_str, hid_t region_obj, void *ref_buf)
+{
+ hid_t region = H5I_INVALID_HID;
+ char ref_name[1024];
+ const char *path;
+
+ int ret_value = FAIL;
+
+ if ((H5Rget_name(region_obj, H5R_DATASET_REGION, ref_buf, (char *)ref_name, 1024)) < 0)
+ H5_LIBRARY_ERROR(ENVONLY);
+ if (!h5str_append(out_str, ref_name))
+ H5_ASSERTION_ERROR(ENVONLY, "Unable to append string.");
+
+ ret_value = SUCCEED;
+done:
+
+ return ret_value;
+} /* h5str_sprint_reference */
+
int
h5str_region_dataset(JNIEnv *env, h5str_t *out_str, hid_t container, void *ref_buf, int expand_data)
{
@@ -655,6 +683,10 @@ h5str_region_dataset(JNIEnv *env, h5str_t *out_str, hid_t container, void *ref_b
if ((region_sid = H5Rget_region(container, H5R_DATASET_REGION, ref_buf)) < 0)
H5_LIBRARY_ERROR(ENVONLY);
+ if (expand_data == 0)
+ if (h5str_sprint_reference(ENVONLY, out_str, region_obj, ref_buf) < 0)
+ CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
+
if ((region_type = H5Sget_select_type(region_sid)) > H5S_SEL_ERROR) {
if (H5S_SEL_POINTS == region_type) {
if (h5str_dump_region_points(ENVONLY, out_str, region_sid, region_obj, expand_data) < 0)
diff --git a/java/src/jni/h5util.h b/java/src/jni/h5util.h
index 64913a7..33f1ea7 100644
--- a/java/src/jni/h5util.h
+++ b/java/src/jni/h5util.h
@@ -41,6 +41,7 @@ extern void h5str_resize(h5str_t *str, size_t new_len);
extern char * h5str_append(h5str_t *str, const char *cstr);
extern size_t h5str_convert(JNIEnv *env, char **in_str, hid_t container, hid_t tid, void *out_buf,
size_t out_buf_offset);
+extern int h5str_sprint_reference(JNIEnv *env, h5str_t *out_str, hid_t region_obj, void *ref_buf);
extern size_t h5str_sprintf(JNIEnv *env, h5str_t *out_str, hid_t container, hid_t tid, void *in_buf,
int expand_data);
extern void h5str_array_free(char **strs, size_t len);