diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2005-08-28 02:29:35 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2005-08-28 02:29:35 (GMT) |
commit | 8ba473742492dcfa3431891c193b895029603dd6 (patch) | |
tree | bf6c302a4dbcb9feb642217e5a4991c1bc9acb98 /tools/h5dump | |
parent | e3f0bbb0751ba7e866e33b51481f0e893d641b96 (diff) | |
download | hdf5-8ba473742492dcfa3431891c193b895029603dd6.zip hdf5-8ba473742492dcfa3431891c193b895029603dd6.tar.gz hdf5-8ba473742492dcfa3431891c193b895029603dd6.tar.bz2 |
[svn-r11305] Purpose:
Bug fix
Description:
Machines with 64-bit long types were not printing object IDs correctly.
Solution:
Duplicate the code from the library internal H5G_get_objinfo routine to
make the object ID handling correct.
Platforms tested:
Linux 2.4 on AMD64 (mir)
Diffstat (limited to 'tools/h5dump')
-rw-r--r-- | tools/h5dump/h5dump.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index 2c5d73a..dc75ea2 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -690,7 +690,11 @@ print_datatype(hid_t type,unsigned in_group) unsigned long objno[2]; /*object number */ objno[0] = (unsigned long)(obj->objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(obj->objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ HDfprintf(stdout,"\"/#%lu:%lu\"", objno[0], objno[1]); } else @@ -1652,7 +1656,11 @@ dump_group(hid_t gid, const char *name) type = H5Dget_type(dset); objno[0] = (unsigned long)(type_table->objs[u].objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(type_table->objs[u].objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(type_name, "#%lu:%lu", objno[0], objno[1]); dump_function_table->dump_named_datatype_function(type, type_name); @@ -2584,7 +2592,11 @@ static void dump_fcontents(hid_t fid) unsigned long objno[2]; /*object number */ objno[0] = (unsigned long)(type_table->objs[u].objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(type_table->objs[u].objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ printf(" %-10s /#%lu:%lu\n", "datatype", objno[0], objno[1]); } } @@ -3017,7 +3029,11 @@ handle_datatypes(hid_t fid, char *type, void UNUSED * data) /* unamed data type */ objno[0] = (unsigned long)(type_table->objs[idx].objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(type_table->objs[idx].objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(name, "/#%lu:%lu", objno[0], objno[1]); if (!HDstrcmp(name, type)) @@ -3730,7 +3746,11 @@ xml_name_to_XID(const char *str , char *outstr, int outlen, int gen) if (gen) { objno = ref_path_table_gen_fake(str); _objno[0] = (unsigned long)(objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG _objno[1] = (unsigned long)(objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + _objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(outstr,"xid_%lu-%lu", _objno[0], _objno[1]); return 0; } else { @@ -3741,7 +3761,11 @@ xml_name_to_XID(const char *str , char *outstr, int outlen, int gen) if (gen) { objno = ref_path_table_gen_fake(str); _objno[0] = (unsigned long)(objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG _objno[1] = (unsigned long)(objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + _objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(outstr,"xid_%lu-%lu", _objno[0], _objno[1]); return 0; } else { @@ -3751,7 +3775,11 @@ xml_name_to_XID(const char *str , char *outstr, int outlen, int gen) } _objno[0] = (unsigned long)(objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG _objno[1] = (unsigned long)(objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + _objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(outstr,"xid_%lu-%lu", _objno[0], _objno[1]); return(0); @@ -4913,7 +4941,11 @@ xml_dump_group(hid_t gid, const char *name) type = H5Dget_type(dset); objno[0] = (unsigned long)(type_table->objs[u].objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(type_table->objs[u].objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(type_name, "#%lu:%lu", objno[0], objno[1]); dump_function_table->dump_named_datatype_function(type, type_name); @@ -4978,7 +5010,11 @@ xml_dump_group(hid_t gid, const char *name) type = H5Dget_type(dset); objno[0] = (unsigned long)(type_table->objs[u].objno); +#if H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG objno[1] = (unsigned long)(type_table->objs[u].objno >> 8*sizeof(long)); +#else /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ + objno[1] = 0; +#endif /* H5_SIZEOF_UINT64_T>H5_SIZEOF_LONG */ sprintf(type_name, "#%lu:%lu", objno[0], objno[1]); dump_function_table->dump_named_datatype_function(type, type_name); |