summaryrefslogtreecommitdiffstats
path: root/src/H5FDmulti.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2016-04-16 08:39:01 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2016-04-16 08:39:01 (GMT)
commitd3574d0570e57d59ed99dd28e79ad808493b8462 (patch)
treefbcfb4eb3acb9cc544c35143429c79425655fdd7 /src/H5FDmulti.c
parentbe24e91aec6225af283f147ca1ba4974abb67064 (diff)
downloadhdf5-d3574d0570e57d59ed99dd28e79ad808493b8462.zip
hdf5-d3574d0570e57d59ed99dd28e79ad808493b8462.tar.gz
hdf5-d3574d0570e57d59ed99dd28e79ad808493b8462.tar.bz2
[svn-r29715] Description:
Clean up coding to increment/decrement underlying FAPL for multi/split VFDs, to avoid copying property lists as much. Tested on: MacOSX/64 10.11.4 (amazon) w/serial & parallel (h5committest forthcoming)
Diffstat (limited to 'src/H5FDmulti.c')
-rw-r--r--src/H5FDmulti.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/H5FDmulti.c b/src/H5FDmulti.c
index b4460b8..bf27b1a 100644
--- a/src/H5FDmulti.c
+++ b/src/H5FDmulti.c
@@ -899,25 +899,30 @@ H5FD_multi_fapl_copy(const void *_old_fa)
memcpy(new_fa, old_fa, sizeof(H5FD_multi_fapl_t));
ALL_MEMBERS(mt) {
if (old_fa->memb_fapl[mt]>=0) {
- new_fa->memb_fapl[mt] = H5Pcopy(old_fa->memb_fapl[mt]);
- if(new_fa->memb_fapl[mt]<0)
+ if (H5Iinc_ref(old_fa->memb_fapl[mt]) < 0) {
nerrors++;
+ break;
+ }
+ new_fa->memb_fapl[mt] = old_fa->memb_fapl[mt];
}
if (old_fa->memb_name[mt]) {
new_fa->memb_name[mt] = my_strdup(old_fa->memb_name[mt]);
- assert(new_fa->memb_name[mt]);
+ if (NULL == new_fa->memb_name[mt]) {
+ nerrors++;
+ break;
+ }
}
} END_MEMBERS;
if (nerrors) {
ALL_MEMBERS(mt) {
if (new_fa->memb_fapl[mt]>=0)
- (void)H5Pclose(new_fa->memb_fapl[mt]);
+ (void)H5Idec_ref(new_fa->memb_fapl[mt]);
if (new_fa->memb_name[mt])
free(new_fa->memb_name[mt]);
} END_MEMBERS;
free(new_fa);
- H5Epush_ret(func, H5E_ERR_CLS, H5E_INTERNAL, H5E_BADVALUE, "invalid freespace objects", NULL)
+ H5Epush_ret(func, H5E_ERR_CLS, H5E_INTERNAL, H5E_BADVALUE, "can't release object on error", NULL)
}
return new_fa;
}
@@ -948,7 +953,7 @@ H5FD_multi_fapl_free(void *_fa)
ALL_MEMBERS(mt) {
if (fa->memb_fapl[mt]>=0)
- if(H5Pclose(fa->memb_fapl[mt])<0)
+ if(H5Idec_ref(fa->memb_fapl[mt])<0)
H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_CANTCLOSEOBJ, "can't close property list", -1)
if (fa->memb_name[mt])
free(fa->memb_name[mt]);
@@ -1013,9 +1018,8 @@ H5FD_multi_open(const char *name, unsigned flags, hid_t fapl_id,
file->fa.memb_map[mt] = fa->memb_map[mt];
file->fa.memb_addr[mt] = fa->memb_addr[mt];
if (fa->memb_fapl[mt]>=0)
- file->fa.memb_fapl[mt] = H5Pcopy(fa->memb_fapl[mt]);
- else
- file->fa.memb_fapl[mt] = fa->memb_fapl[mt];
+ H5Iinc_ref(fa->memb_fapl[mt]);
+ file->fa.memb_fapl[mt] = fa->memb_fapl[mt];
if (fa->memb_name[mt])
file->fa.memb_name[mt] = my_strdup(fa->memb_name[mt]);
else
@@ -1047,7 +1051,7 @@ error:
if (file) {
ALL_MEMBERS(mt) {
if (file->memb[mt]) (void)H5FDclose(file->memb[mt]);
- if (file->fa.memb_fapl[mt]>=0) (void)H5Pclose(file->fa.memb_fapl[mt]);
+ if (file->fa.memb_fapl[mt]>=0) (void)H5Idec_ref(file->fa.memb_fapl[mt]);
if (file->fa.memb_name[mt]) free(file->fa.memb_name[mt]);
} END_MEMBERS;
if (file->name) free(file->name);
@@ -1098,7 +1102,7 @@ H5FD_multi_close(H5FD_t *_file)
/* Clean up other stuff */
ALL_MEMBERS(mt) {
- if (file->fa.memb_fapl[mt]>=0) (void)H5Pclose(file->fa.memb_fapl[mt]);
+ if (file->fa.memb_fapl[mt]>=0) (void)H5Idec_ref(file->fa.memb_fapl[mt]);
if (file->fa.memb_name[mt]) free(file->fa.memb_name[mt]);
} END_MEMBERS;
free(file->name);
/a> -rw-r--r--H5Aint.c92554logstatsplain -rw-r--r--H5Amodule.h1425logstatsplain -rw-r--r--H5Apkg.h12737logstatsplain -rw-r--r--H5Aprivate.h3610logstatsplain -rw-r--r--H5Apublic.h5471logstatsplain -rw-r--r--H5Atest.c4391logstatsplain -rw-r--r--H5B.c79771logstatsplain -rw-r--r--H5B2.c62049logstatsplain -rw-r--r--H5B2cache.c47392logstatsplain -rw-r--r--H5B2dbg.c13521logstatsplain -rw-r--r--H5B2hdr.c25055logstatsplain -rw-r--r--H5B2int.c91594logstatsplain -rw-r--r--H5B2internal.c62662logstatsplain -rw-r--r--H5B2leaf.c40497logstatsplain -rw-r--r--H5B2module.h1433logstatsplain -rw-r--r--H5B2pkg.h24608logstatsplain -rw-r--r--H5B2private.h8169logstatsplain -rw-r--r--H5B2public.h1768logstatsplain -rw-r--r--H5B2stat.c4148logstatsplain -rw-r--r--H5B2test.c21697logstatsplain -rw-r--r--H5Bcache.c13124logstatsplain -rw-r--r--H5Bdbg.c9940logstatsplain -rw-r--r--H5Bmodule.h1425logstatsplain -rw-r--r--H5Bpkg.h3575logstatsplain -rw-r--r--H5Bprivate.h7675logstatsplain -rw-r--r--H5Bpublic.h1508logstatsplain -rw-r--r--H5C.c345904logstatsplain -rw-r--r--H5CS.c10615logstatsplain -rw-r--r--H5CSprivate.h1517logstatsplain -rw-r--r--H5Cdbg.c56358logstatsplain -rw-r--r--H5Cepoch.c8532logstatsplain -rw-r--r--H5Cimage.c136697logstatsplain -rw-r--r--H5Clog.c12483logstatsplain -rw-r--r--H5Cmodule.h1425logstatsplain -rw-r--r--H5Cmpio.c62142logstatsplain -rw-r--r--H5Cpkg.h273350logstatsplain -rw-r--r--H5Cprefetched.c12641logstatsplain -rw-r--r--H5Cprivate.h103185logstatsplain -rw-r--r--H5Cpublic.h1760logstatsplain -rw-r--r--H5Cquery.c15305logstatsplain -rw-r--r--H5Ctag.c30800logstatsplain -rw-r--r--H5Ctest.c4958logstatsplain -rw-r--r--H5D.c41021logstatsplain -rw-r--r--H5Dbtree.c53122logstatsplain -rw-r--r--H5Dbtree2.c55309logstatsplain -rw-r--r--H5Dchunk.c293011logstatsplain -rw-r--r--H5Dcompact.c24133logstatsplain -rw-r--r--H5Dcontig.c68072logstatsplain -rw-r--r--H5Ddbg.c2926logstatsplain -rw-r--r--H5Ddeprec.c14678logstatsplain -rw-r--r--H5Dearray.c66060logstatsplain -rw-r--r--H5Defl.c21991logstatsplain -rw-r--r--H5Dfarray.c58527logstatsplain -rw-r--r--H5Dfill.c30660logstatsplain -rw-r--r--H5Dint.c151028logstatsplain -rw-r--r--H5Dio.c64199logstatsplain -rw-r--r--H5Dlayout.c28673logstatsplain -rw-r--r--H5Dmodule.h1428logstatsplain -rw-r--r--H5Dmpio.c164235logstatsplain -rw-r--r--H5Dnone.c15646logstatsplain -rw-r--r--H5Doh.c15998logstatsplain -rw-r--r--H5Dpkg.h42757logstatsplain -rw-r--r--H5Dprivate.h10688logstatsplain -rw-r--r--H5Dpublic.h8276logstatsplain -rw-r--r--H5Dscatgath.c47005logstatsplain -rw-r--r--H5Dselect.c12928logstatsplain -rw-r--r--H5Dsingle.c17408logstatsplain -rw-r--r--H5Dtest.c9877logstatsplain -rw-r--r--H5Dvirtual.c137295logstatsplain -rw-r--r--H5E.c58079logstatsplain -rw-r--r--H5EA.c39977logstatsplain -rw-r--r--H5EAcache.c83146logstatsplain -rw-r--r--H5EAdbg.c18649logstatsplain -rw-r--r--H5EAdblkpage.c11627logstatsplain -rw-r--r--H5EAdblock.c16687logstatsplain -rw-r--r--H5EAhdr.c28355logstatsplain -rw-r--r--H5EAiblock.c18502logstatsplain -rw-r--r--H5EAint.c3969logstatsplain -rw-r--r--H5EAmodule.h1433logstatsplain -rw-r--r--H5EApkg.h25228logstatsplain -rw-r--r--H5EAprivate.h7382logstatsplain -rw-r--r--H5EAsblock.c15968logstatsplain -rw-r--r--H5EAstat.c2976logstatsplain -rw-r--r--H5EAtest.c15052logstatsplain -rw-r--r--H5Edeprec.c14614logstatsplain -rw-r--r--H5Eint.c35161logstatsplain -rw-r--r--H5Emodule.h1427logstatsplain -rw-r--r--H5Epkg.h5552logstatsplain -rw-r--r--H5Eprivate.h8192logstatsplain -rw-r--r--H5Epublic.h9023logstatsplain -rw-r--r--H5F.c74673logstatsplain -rw-r--r--H5FA.c27662logstatsplain -rw-r--r--H5FAcache.c46265logstatsplain -rw-r--r--H5FAdbg.c11175logstatsplain -rw-r--r--H5FAdblkpage.c11776logstatsplain -rw-r--r--H5FAdblock.c16071logstatsplain -rw-r--r--H5FAhdr.c17906logstatsplain -rw-r--r--H5FAint.c4003logstatsplain -rw-r--r--H5FAmodule.h1433logstatsplain -rw-r--r--H5FApkg.h15813logstatsplain -rw-r--r--H5FAprivate.h6345logstatsplain -rw-r--r--H5FAstat.c3016logstatsplain -rw-r--r--H5FAtest.c12407logstatsplain -rw-r--r--H5FD.c60289logstatsplain -rw-r--r--H5FDcore.c59849logstatsplain -rw-r--r--H5FDcore.h1490logstatsplain -rw-r--r--H5FDdirect.c48352logstatsplain -rw-r--r--H5FDdirect.h1955logstatsplain -rw-r--r--H5FDdrvr_module.h1470logstatsplain -rw-r--r--H5FDfamily.c47612logstatsplain -rw-r--r--H5FDfamily.h1506logstatsplain -rw-r--r--H5FDint.c14986logstatsplain -rw-r--r--H5FDlog.c67615logstatsplain -rw-r--r--H5FDlog.h3322logstatsplain -rw-r--r--H5FDmodule.h1431logstatsplain -rw-r--r--H5FDmpi.c15174logstatsplain -rw-r--r--H5FDmpi.h2573logstatsplain -rw-r--r--H5FDmpio.c71554logstatsplain -rw-r--r--H5FDmpio.h2440logstatsplain -rw-r--r--H5FDmulti.c65200logstatsplain -rw-r--r--H5FDmulti.h1800logstatsplain -rw-r--r--H5FDpkg.h2363logstatsplain -rw-r--r--H5FDprivate.h8705logstatsplain -rw-r--r--H5FDpublic.h17115logstatsplain -rw-r--r--H5FDsec2.c36813logstatsplain -rw-r--r--H5FDsec2.h1339logstatsplain -rw-r--r--H5FDspace.c15461logstatsplain -rw-r--r--H5FDstdio.c40686logstatsplain -rw-r--r--H5FDstdio.h1368logstatsplain -rw-r--r--H5FDtest.c3453logstatsplain -rw-r--r--H5FDwindows.c2830logstatsplain -rw-r--r--H5FDwindows.h1414logstatsplain -rw-r--r--H5FL.c83005logstatsplain -rw-r--r--H5FLmodule.h1435logstatsplain -rw-r--r--H5FLprivate.h18607logstatsplain -rw-r--r--H5FO.c18812logstatsplain -rw-r--r--H5FOprivate.h2209logstatsplain -rw-r--r--H5FS.c45578logstatsplain -rw-r--r--H5FScache.c58982logstatsplain -rw-r--r--H5FSdbg.c10308logstatsplain -rw-r--r--H5FSint.c4868logstatsplain -rw-r--r--H5FSmodule.h1433logstatsplain -rw-r--r--H5FSpkg.h12241logstatsplain -rw-r--r--H5FSprivate.h12584logstatsplain -rw-r--r--H5FSpublic.h1773logstatsplain -rw-r--r--H5FSsection.c108399logstatsplain -rw-r--r--H5FSstat.c3007logstatsplain -rw-r--r--H5FStest.c4468logstatsplain -rw-r--r--H5Faccum.c50702logstatsplain -rw-r--r--H5Fcwfs.c10521logstatsplain -rw-r--r--H5Fdbg.c6850logstatsplain -rw-r--r--H5Fdeprec.c4817logstatsplain -rw-r--r--H5Fefc.c36926logstatsplain -rw-r--r--H5Ffake.c3503logstatsplain -rw-r--r--H5Fint.c114441logstatsplain -rw-r--r--H5Fio.c12293logstatsplain -rw-r--r--H5Fmodule.h1425logstatsplain -rw-r--r--H5Fmount.c26935logstatsplain -rw-r--r--H5Fmpi.c10527logstatsplain -rw-r--r--H5Fpkg.h26162logstatsplain -rw-r--r--H5Fprivate.h41308logstatsplain -rw-r--r--H5Fpublic.h14345logstatsplain -rw-r--r--H5Fquery.c36860logstatsplain -rw-r--r--H5Fsfile.c6766logstatsplain -rw-r--r--H5Fspace.c7239logstatsplain -rw-r--r--H5Fsuper.c76202logstatsplain -rw-r--r--H5Fsuper_cache.c40609logstatsplain -rw-r--r--H5Ftest.c6683logstatsplain -rw-r--r--H5G.c28301logstatsplain -rw-r--r--H5Gbtree2.c18563logstatsplain -rw-r--r--H5Gcache.c11520logstatsplain -rw-r--r--H5Gcompact.c22200logstatsplain -rw-r--r--H5Gdense.c73252logstatsplain -rw-r--r--H5Gdeprec.c41254logstatsplain -rw-r--r--H5Gent.c20073logstatsplain -rw-r--r--H5Gint.c45862logstatsplain -rw-r--r--H5Glink.c18562logstatsplain -rw-r--r--H5Gloc.c31420logstatsplain -rw-r--r--H5Gmodule.h1424logstatsplain -rw-r--r--H5Gname.c48308logstatsplain -rw-r--r--H5Gnode.c58504logstatsplain -rw-r--r--H5Gobj.c49241logstatsplain -rw-r--r--H5Goh.c14710logstatsplain -rw-r--r--H5Gpkg.h23846logstatsplain