summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5D.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/H5D.c b/src/H5D.c
index 34c9642..812979c 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -642,8 +642,12 @@ H5D_crt_ext_file_list_cmp(const void *value1, const void *value2, size_t size)
assert(size==sizeof(H5O_efl_t));
/* Check the heap address of external file lists */
- if((cmp_value=H5F_addr_cmp(efl1->heap_addr,efl2->heap_addr))!=0)
- HGOTO_DONE(cmp_value);
+ if(H5F_addr_defined(efl1->heap_addr) || H5F_addr_defined(efl2->heap_addr)) {
+ if(!H5F_addr_defined(efl1->heap_addr) && H5F_addr_defined(efl2->heap_addr)) HGOTO_DONE(-1);
+ if(H5F_addr_defined(efl1->heap_addr) && !H5F_addr_defined(efl2->heap_addr)) HGOTO_DONE(1);
+ if((cmp_value=H5F_addr_cmp(efl1->heap_addr,efl2->heap_addr))!=0)
+ HGOTO_DONE(cmp_value);
+ } /* end if */
/* Check the number of allocated efl entries */
if(efl1->nalloc < efl2->nalloc) HGOTO_DONE(-1);