diff options
Diffstat (limited to 'test/page_buffer.c')
-rw-r--r-- | test/page_buffer.c | 45 |
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 |