summaryrefslogtreecommitdiffstats
path: root/test/page_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/page_buffer.c')
-rw-r--r--test/page_buffer.c45
1 files changed, 30 insertions, 15 deletions
diff --git a/test/page_buffer.c b/test/page_buffer.c
index a97e245..35743d0 100644
--- a/test/page_buffer.c
+++ b/test/page_buffer.c
@@ -97,36 +97,51 @@ error:
static int
swmr_fapl_augment(hid_t fapl, const char *filename, uint32_t max_lag)
{
- H5F_vfd_swmr_config_t config = {.version = H5F__CURR_VFD_SWMR_CONFIG_VERSION,
- .tick_len = 4,
- .max_lag = max_lag,
- .writer = true,
- .maintain_metadata_file = true,
- .generate_updater_files = false,
- .md_pages_reserved = 128};
- char * bname = NULL;
- char * dname = NULL;
+ H5F_vfd_swmr_config_t *config = NULL;
+ char * bname = NULL;
+ char * dname = NULL;
+
+ if (NULL == (config = HDcalloc(1, sizeof(H5F_vfd_swmr_config_t))))
+ goto error;
+
+ config->version = H5F__CURR_VFD_SWMR_CONFIG_VERSION;
+ config->tick_len = 4;
+ config->max_lag = max_lag;
+ config->writer = TRUE;
+ config->maintain_metadata_file = TRUE;
+ config->generate_updater_files = FALSE;
+ config->md_pages_reserved = 128;
if (H5_dirname(filename, &dname) < 0) {
HDfprintf(stderr, "H5_dirname() failed\n");
- return -1;
+ goto error;
}
if (H5_basename(filename, &bname) < 0) {
HDfprintf(stderr, "H5_basename() failed\n");
- return -1;
+ goto error;
}
- HDsnprintf(config.md_file_path, sizeof(config.md_file_path), "%s", dname);
- HDsnprintf(config.md_file_name, sizeof(config.md_file_name), "%s.shadow", bname);
+ HDsnprintf(config->md_file_path, sizeof(config->md_file_path), "%s", dname);
+ HDsnprintf(config->md_file_name, sizeof(config->md_file_name), "%s.shadow", bname);
HDfree(dname);
HDfree(bname);
/* Enable VFD SWMR configuration */
- if (H5Pset_vfd_swmr_config(fapl, &config) < 0) {
+ if (H5Pset_vfd_swmr_config(fapl, config) < 0) {
HDfprintf(stderr, "H5Pset_vrd_swmr_config failed\n");
- return -1;
+ goto error;
}
+
+ HDfree(config);
+
return 0;
+
+error:
+ HDfree(dname);
+ HDfree(bname);
+ HDfree(config);
+
+ return -1;
}
static bool