From b58e9a6253c5b0a5beff9bd444f68cf64c2533e9 Mon Sep 17 00:00:00 2001 From: Robb Matzke Date: Mon, 7 Dec 1998 13:40:54 -0500 Subject: [svn-r959] Changes since 19981125 ---------------------- ./src/H5HG.c Fixed a bug in the alignment calculation for the heap free space. The reference test passes now. --- src/.distdep | 322 ++++++++++++++++++++++++++++----------------------------- src/H5HG.c | 15 ++- src/H5Omtime.c | 4 +- test/.distdep | 60 +++++------ 4 files changed, 206 insertions(+), 195 deletions(-) diff --git a/src/.distdep b/src/.distdep index 6c4d8ff..8d541b6 100644 --- a/src/.distdep +++ b/src/.distdep @@ -214,32 +214,6 @@ H5Flow.o: \ H5Fprivate.h \ H5Fpublic.h \ H5Dpublic.h -H5Fmpio.o: \ - H5Fmpio.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5Dprivate.h \ - H5Dpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h H5Fsec2.o: \ H5Fsec2.c \ H5private.h \ @@ -392,22 +366,6 @@ H5Gstab.o: \ H5Sprivate.h \ H5Spublic.h \ H5Zprivate.h -H5HG.o: \ - H5HG.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5MFprivate.h H5HL.o: \ H5HL.c \ H5private.h \ @@ -655,32 +613,6 @@ H5Olayout.o: \ H5Zpublic.h \ H5Eprivate.h \ H5Epublic.h -H5Omtime.o: \ - H5Omtime.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h H5Oname.o: \ H5Oname.c \ H5private.h \ @@ -806,32 +738,6 @@ H5Ostab.o: \ H5Sprivate.h \ H5Spublic.h \ H5Zprivate.h -H5R.o: \ - H5R.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Iprivate.h \ - H5Ipublic.h \ - H5Dprivate.h \ - H5Dpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h \ - H5Eprivate.h H5RA.o: \ H5RA.c \ H5RAprivate.h \ @@ -941,27 +847,6 @@ H5Shyper.o: \ H5Zprivate.h \ H5Zpublic.h \ H5Vprivate.h -H5Smpio.o: \ - H5Smpio.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h H5Snone.o: \ H5Snone.c \ H5private.h \ @@ -1119,6 +1004,76 @@ H5Z.o: \ H5Sprivate.h \ H5Spublic.h \ H5Zprivate.h +H5P.o: \ + H5P.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Dprivate.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Eprivate.h +H5Tconv.o: \ + H5Tconv.c \ + H5Iprivate.h \ + H5Ipublic.h \ + H5public.h \ + H5config.h \ + H5private.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Tpkg.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Rprivate.h \ + H5Rpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Gprivate.h \ + H5Gpublic.h +H5Tinit.o: \ + H5Tinit.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Tpkg.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Rprivate.h \ + H5Rpublic.h \ + H5Tprivate.h \ + H5Tpublic.h H5.o: \ H5.c \ H5private.h \ @@ -1150,21 +1105,22 @@ H5.o: \ H5HGprivate.h \ H5HGpublic.h \ H5Tprivate.h -H5P.o: \ - H5P.c \ +H5Fmpio.o: \ + H5Fmpio.c \ H5private.h \ H5public.h \ H5config.h \ - H5Iprivate.h \ + H5Eprivate.h \ + H5Epublic.h \ H5Ipublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ + H5Dprivate.h \ + H5Dpublic.h \ H5Fprivate.h \ H5Fpublic.h \ - H5Dpublic.h \ - H5Dprivate.h \ H5Gprivate.h \ H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ H5Oprivate.h \ H5Opublic.h \ H5HGprivate.h \ @@ -1174,16 +1130,58 @@ H5P.o: \ H5Sprivate.h \ H5Spublic.h \ H5Zprivate.h \ - H5Zpublic.h \ - H5Eprivate.h -H5T.o: \ - H5T.c \ + H5Zpublic.h +H5HG.o: \ + H5HG.c \ H5private.h \ H5public.h \ H5config.h \ - H5Dprivate.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ H5Dpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5MFprivate.h +H5Omtime.o: \ + H5Omtime.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ H5Ipublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h +H5R.o: \ + H5R.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5Dprivate.h \ + H5Dpublic.h \ H5Fprivate.h \ H5Fpublic.h \ H5Gprivate.h \ @@ -1200,54 +1198,56 @@ H5T.o: \ H5Spublic.h \ H5Zprivate.h \ H5Zpublic.h \ - H5Iprivate.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Tpkg.h \ - H5Rprivate.h -H5Tconv.o: \ - H5Tconv.c \ - H5Iprivate.h \ - H5Ipublic.h \ + H5Eprivate.h +H5Smpio.o: \ + H5Smpio.c \ + H5private.h \ H5public.h \ H5config.h \ - H5private.h \ H5Eprivate.h \ H5Epublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Tpkg.h \ - H5HGprivate.h \ - H5HGpublic.h \ + H5Ipublic.h \ + H5Sprivate.h \ + H5Spublic.h \ H5Fprivate.h \ H5Fpublic.h \ H5Dpublic.h \ - H5Rprivate.h \ - H5Rpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ H5Gprivate.h \ - H5Gpublic.h -H5Tinit.o: \ - H5Tinit.c \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h +H5T.o: \ + H5T.c \ H5private.h \ H5public.h \ H5config.h \ - H5Iprivate.h \ + H5Dprivate.h \ + H5Dpublic.h \ H5Ipublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Iprivate.h \ H5Eprivate.h \ H5Epublic.h \ H5MMprivate.h \ H5MMpublic.h \ H5Tpkg.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Rprivate.h \ - H5Rpublic.h \ - H5Tprivate.h \ - H5Tpublic.h + H5Rprivate.h diff --git a/src/H5HG.c b/src/H5HG.c index 1149783..e046fe6 100644 --- a/src/H5HG.c +++ b/src/H5HG.c @@ -202,7 +202,7 @@ H5HG_load (H5F_t *f, const haddr_t *addr, const void __unused__ *udata1, H5HG_heap_t *ret_value = NULL; uint8_t *p = NULL; intn i; - size_t nalloc; + size_t nalloc, need; FUNC_ENTER (H5HG_load, NULL); @@ -294,7 +294,18 @@ H5HG_load (H5F_t *f, const haddr_t *addr, const void __unused__ *udata1, p += 4; /*reserved*/ H5F_decode_length (f, p, heap->obj[idx].size); heap->obj[idx].begin = begin; - p = begin + H5HG_ALIGN(heap->obj[idx].size); + /* + * The total storage size includes the size of the object header + * and is zero padded so the next object header is properly + * aligned. The last bit of space is the free space object whose + * size is never padded and already includes the object header. + */ + if (idx>0) { + need = H5HG_ALIGN(H5HG_SIZEOF_OBJHDR(f) + heap->obj[idx].size); + } else { + need = heap->obj[idx].size; + } + p = begin + need; } } assert(p==heap->chunk+heap->size); diff --git a/src/H5Omtime.c b/src/H5Omtime.c index df0294b..3e4acb0 100644 --- a/src/H5Omtime.c +++ b/src/H5Omtime.c @@ -135,8 +135,8 @@ H5O_mtime_decode(H5F_t __unused__ *f, const uint8_t *p, /* * The catch-all. If we can't convert a character string universal * coordinated time to a time_t value reliably then we can't decode the - * modification time message. This really isn't as bad as it sounds -- - * the only way a user can get the modification time is from H5Gget_objinfo() + * modification time message. This really isn't as bad as it sounds -- the + * only way a user can get the modification time is from H5Gget_objinfo() * and H5G_get_objinfo() can gracefully recover. */ diff --git a/test/.distdep b/test/.distdep index 7da3a87..0783417 100644 --- a/test/.distdep +++ b/test/.distdep @@ -617,30 +617,6 @@ tmeta.o: \ ../src/H5Eprivate.h \ ../src/H5Epublic.h \ ../src/H5Ipublic.h -trefer.o: \ - trefer.c \ - testhdf5.h \ - ../src/H5private.h \ - ../src/H5public.h \ - ../src/H5config.h \ - ../src/H5Eprivate.h \ - ../src/H5Epublic.h \ - ../src/H5Ipublic.h \ - ../src/hdf5.h \ - ../src/H5Apublic.h \ - ../src/H5ACpublic.h \ - ../src/H5Bpublic.h \ - ../src/H5Dpublic.h \ - ../src/H5Fpublic.h \ - ../src/H5Gpublic.h \ - ../src/H5HGpublic.h \ - ../src/H5HLpublic.h \ - ../src/H5MFpublic.h \ - ../src/H5MMpublic.h \ - ../src/H5Opublic.h \ - ../src/H5Ppublic.h \ - ../src/H5Zpublic.h \ - ../src/H5Rpublic.h tselect.o: \ tselect.c \ testhdf5.h \ @@ -849,6 +825,12 @@ mtime.o: \ ../src/H5Rprivate.h \ ../src/H5Tprivate.h \ ../src/H5Gprivate.h +testhdf5.o: \ + testhdf5.c \ + testhdf5.h \ + ../src/H5private.h \ + ../src/H5public.h \ + ../src/H5config.h tattr.o: \ tattr.c \ testhdf5.h \ @@ -873,12 +855,6 @@ tattr.o: \ ../src/H5Ppublic.h \ ../src/H5Zpublic.h \ ../src/H5Rpublic.h -testhdf5.o: \ - testhdf5.c \ - testhdf5.h \ - ../src/H5private.h \ - ../src/H5public.h \ - ../src/H5config.h th5s.o: \ th5s.c \ testhdf5.h \ @@ -906,3 +882,27 @@ th5s.o: \ ../src/H5Zprivate.h \ ../src/H5Zpublic.h \ ../src/H5Pprivate.h +trefer.o: \ + trefer.c \ + testhdf5.h \ + ../src/H5private.h \ + ../src/H5public.h \ + ../src/H5config.h \ + ../src/H5Eprivate.h \ + ../src/H5Epublic.h \ + ../src/H5Ipublic.h \ + ../src/hdf5.h \ + ../src/H5Apublic.h \ + ../src/H5ACpublic.h \ + ../src/H5Bpublic.h \ + ../src/H5Dpublic.h \ + ../src/H5Fpublic.h \ + ../src/H5Gpublic.h \ + ../src/H5HGpublic.h \ + ../src/H5HLpublic.h \ + ../src/H5MFpublic.h \ + ../src/H5MMpublic.h \ + ../src/H5Opublic.h \ + ../src/H5Ppublic.h \ + ../src/H5Zpublic.h \ + ../src/H5Rpublic.h -- cgit v0.12