diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2015-04-29 03:22:55 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2015-04-29 03:22:55 (GMT) |
commit | a9b2e360653988b417f390e0a66d486fa775f3a2 (patch) | |
tree | a80cb2c83dab88061999f05911ae6b98ea3f4cdc /src/H5Olayout.c | |
parent | f3f74731619798b8e802987b01266348f1fbc027 (diff) | |
download | hdf5-a9b2e360653988b417f390e0a66d486fa775f3a2.zip hdf5-a9b2e360653988b417f390e0a66d486fa775f3a2.tar.gz hdf5-a9b2e360653988b417f390e0a66d486fa775f3a2.tar.bz2 |
[svn-r26962] Add support for unlimited selections to VDS code.
Not tested (except for percival-unlim example)
Fix percival-unlim example
Other bug fixes/cleanup
Tested: Fedora 64
Diffstat (limited to 'src/H5Olayout.c')
-rw-r--r-- | src/H5Olayout.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/H5Olayout.c b/src/H5Olayout.c index a20b6d4..fb9bb9c 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -191,7 +191,7 @@ H5O_layout_decode(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, } /* end if */ else { /* Layout class */ - mesg->type = (H5D_layout_t)*p++; + mesg->type = mesg->storage.type = (H5D_layout_t)*p++; /* Interpret the rest of the message according to the layout class */ switch(mesg->type) { @@ -251,6 +251,7 @@ H5O_layout_decode(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, mesg->storage.u.virt.list_nused = 0; mesg->storage.u.virt.list = NULL; mesg->storage.u.virt.list_nalloc = 0; + mesg->storage.u.virt.set_extent_max = TRUE; /* Decode heap block if it exists */ if(mesg->storage.u.virt.serial_list_hobjid.addr != HADDR_UNDEF) { @@ -300,6 +301,18 @@ H5O_layout_decode(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, /* Virtual selection */ if(H5S_SELECT_DESERIALIZE(f, &(mesg->storage.u.virt.list[i].virtual_select), &heap_block_p) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTDECODE, NULL, "can't decode virtual space selection") + + /* unlim_dim fields */ + mesg->storage.u.virt.list[i].unlim_dim_source = H5S_get_select_unlim_dim(mesg->storage.u.virt.list[i].source_select); + mesg->storage.u.virt.list[i].unlim_dim_virtual = H5S_get_select_unlim_dim(mesg->storage.u.virt.list[i].virtual_select); + mesg->storage.u.virt.list[i].unlim_extent_source = HSIZE_UNDEF; + mesg->storage.u.virt.list[i].unlim_extent_virtual = HSIZE_UNDEF; + mesg->storage.u.virt.list[i].clip_size_source = HSIZE_UNDEF; + mesg->storage.u.virt.list[i].clip_size_virtual = HSIZE_UNDEF; + + /* Update min_dims */ + if(H5D_virtual_update_min_dims(mesg, i) < 0) + HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to update virtual dataset minimum dimensions") } /* end for */ /* Read stored checksum */ |