diff options
-rw-r--r-- | fortran/src/H5Df.c | 8 | ||||
-rw-r--r-- | fortran/src/H5Rf.c | 6 | ||||
-rw-r--r-- | src/H5R.c | 14 | ||||
-rw-r--r-- | src/H5Rpublic.h | 5 |
4 files changed, 13 insertions, 20 deletions
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c index 21dbed9..3d4fb08 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -298,7 +298,7 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n)); if ( buf_c != NULL ) { for (i = 0; i < n; i++) { - HDmemcpy(buf_c[i].oid, buf, H5R_OBJ_REF_BUF_SIZE); + HDmemcpy(&buf_c[i], buf, H5R_OBJ_REF_BUF_SIZE); buf = buf + REF_OBJ_BUF_LEN_F; } } @@ -358,7 +358,7 @@ nh5dwrite_ref_obj_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n)); if ( buf_c != NULL ) { for (i = 0; i < n; i++) { - HDmemcpy(buf_c[i].oid, buf, H5R_OBJ_REF_BUF_SIZE); + HDmemcpy(&buf_c[i], buf, H5R_OBJ_REF_BUF_SIZE); buf = buf + REF_OBJ_BUF_LEN_F; } } @@ -694,7 +694,7 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c); if (ret >=0) { for (i = 0; i < n; i++) { - HDmemcpy(buf, buf_c[i].oid, H5R_OBJ_REF_BUF_SIZE); + HDmemcpy(buf, &buf_c[i], H5R_OBJ_REF_BUF_SIZE); buf = buf + REF_OBJ_BUF_LEN_F; } } @@ -753,7 +753,7 @@ nh5dread_ref_obj_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c); if (ret >=0) { for (i = 0; i < n; i++) { - HDmemcpy(buf, buf_c[i].oid, H5R_OBJ_REF_BUF_SIZE); + HDmemcpy(buf, &buf_c[i], H5R_OBJ_REF_BUF_SIZE); buf = buf + REF_OBJ_BUF_LEN_F; } } diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c index a7ef242..d673669 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -53,7 +53,7 @@ nh5rcreate_object_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen) HDfree(c_name); if (ret_value_c >= 0) { - HDmemcpy(ref, ref_c.oid, H5R_OBJ_REF_BUF_SIZE); + *ref=ref_c; ret_value = 0; } @@ -160,7 +160,7 @@ nh5rdereference_object_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id) hid_t c_obj_id; hobj_ref_t ref_c; - HDmemcpy (ref_c.oid, ref, H5R_OBJ_REF_BUF_SIZE); + ref_c=*ref; /* * Call H5Rdereference function. @@ -225,7 +225,7 @@ nh5rget_object_type_obj_c (hid_t_f *dset_id, int_f *ref, int_f *obj_type) int c_obj_type; hobj_ref_t ref_c; - HDmemcpy (ref_c.oid, ref, H5R_OBJ_REF_BUF_SIZE); + ref_c=*ref; /* * Call H5Rget_object_type function. @@ -156,20 +156,17 @@ H5R_create(void *_ref, H5G_entry_t *loc, const char *name, H5R_type_t ref_type, switch(ref_type) { case H5R_OBJECT: { - haddr_t addr; hobj_ref_t *ref=(hobj_ref_t *)_ref; /* Get pointer to correct type of reference struct */ uint8_t *p; /* Pointer to OID to store */ /* Set information for reference */ - p=(uint8_t *)ref->oid; - H5F_addr_pack(loc->file,&addr,&sb.objno[0]); - H5F_addr_encode(loc->file,&p,addr); + p=(uint8_t *)ref; + H5F_addr_encode(loc->file,&p,sb.objno); break; } case H5R_DATASET_REGION: { - haddr_t addr; H5HG_t hobjid; /* Heap object ID */ hdset_reg_ref_t *ref=(hdset_reg_ref_t *)_ref; /* Get pointer to correct type of reference struct */ hssize_t buf_size; /* Size of buffer needed to serialize selection */ @@ -211,8 +208,7 @@ H5R_create(void *_ref, H5G_entry_t *loc, const char *name, H5R_type_t ref_type, /* Serialize information for dataset OID */ p=(uint8_t *)buf; - H5F_addr_pack(loc->file,&addr,&sb.objno[0]); - H5F_addr_encode(loc->file,&p,addr); + H5F_addr_encode(loc->file,&p,sb.objno); /* Serialize the selection */ if ((*space->select.serialize)(space,p) < 0) @@ -360,7 +356,7 @@ H5R_dereference(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, void *_ref) * open a dataset for now */ /* Get the object oid */ - p=(uint8_t *)ref->oid; + p=(uint8_t *)ref; H5F_addr_decode(ent.file,(const uint8_t **)&p,&(ent.header)); } /* end case */ break; @@ -670,7 +666,7 @@ H5R_get_obj_type(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, void *_ref) hobj_ref_t *ref=(hobj_ref_t *)_ref; /* Only object references currently supported */ /* Get the object oid */ - p=(uint8_t *)ref->oid; + p=(uint8_t *)ref; H5F_addr_decode(ent.file,(const uint8_t **)&p,&(ent.header)); } /* end case */ break; diff --git a/src/H5Rpublic.h b/src/H5Rpublic.h index b567791..c40fd16 100644 --- a/src/H5Rpublic.h +++ b/src/H5Rpublic.h @@ -50,10 +50,7 @@ typedef struct { */ #define H5R_OBJ_REF_BUF_SIZE sizeof(haddr_t) /* Object reference structure for user's code */ -typedef struct { - unsigned char oid[H5R_OBJ_REF_BUF_SIZE]; /* Buffer to store OID of object referenced */ - /* Needs to be large enough to store largest haddr_t in a worst case machine (ie. 8 bytes currently) */ -} hobj_ref_t; +typedef haddr_t hobj_ref_t; /* Needs to be large enough to store largest haddr_t in a worst case machine (ie. 8 bytes currently) */ #define H5R_DSET_REG_REF_BUF_SIZE (sizeof(haddr_t)+sizeof(int)) /* Dataset Region reference structure for user's code */ |