mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r13295] Description:
Fix bug in "create intermediate groups" code which was carrying too much information from parent to child group. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
This commit is contained in:
parent
a5662c4978
commit
74754706cf
@ -696,6 +696,7 @@ H5G_traverse_real(const H5G_loc_t *_loc, const char *name, unsigned target,
|
||||
const H5O_linfo_t def_linfo = H5G_CRT_LINK_INFO_DEF; /* Default link info settings */
|
||||
H5O_ginfo_t par_ginfo; /* Group info settings for parent group */
|
||||
H5O_linfo_t par_linfo; /* Link info settings for parent group */
|
||||
H5O_linfo_t tmp_linfo; /* Temporary link info settings */
|
||||
const H5O_ginfo_t *ginfo; /* Group info settings for new group */
|
||||
const H5O_linfo_t *linfo; /* Link info settings for new group */
|
||||
|
||||
@ -720,8 +721,14 @@ H5G_traverse_real(const H5G_loc_t *_loc, const char *name, unsigned target,
|
||||
/* Use default link info settings */
|
||||
linfo = &def_linfo;
|
||||
} /* end if */
|
||||
else
|
||||
linfo = &par_linfo;
|
||||
else {
|
||||
/* Only keep the index_corder information from the parent
|
||||
* group's link info
|
||||
*/
|
||||
HDmemcpy(&tmp_linfo, &def_linfo, sizeof(H5O_linfo_t));
|
||||
tmp_linfo.index_corder = par_linfo.index_corder;
|
||||
linfo = &tmp_linfo;
|
||||
} /* end else */
|
||||
|
||||
/* Create the intermediate group */
|
||||
/* XXX: Should we allow user to control the group creation params here? -QAK */
|
||||
|
@ -169,6 +169,8 @@ typedef struct H5O_shared_t {
|
||||
* (Data structure in memory)
|
||||
* (if the fields in this struct are changed, remember to change the default
|
||||
* link info structure in src/H5Gprivate.h - QAK)
|
||||
* (if the fields in this struct are changed, also look at the code that
|
||||
* creates intermediate groups in src/H5Gtraverse.c - QAK)
|
||||
*/
|
||||
typedef struct H5O_linfo_t {
|
||||
/* (creation order info) */
|
||||
|
Loading…
Reference in New Issue
Block a user