diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2010-09-21 16:46:38 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2010-09-21 16:46:38 (GMT) |
commit | d6c6a34a8f5876d21dee052c74426b0606b62d13 (patch) | |
tree | 67b0dddc97926eae54a6fd23a563a4e2296dabab /tools | |
parent | ba71366f9867bd2d817abf6715a5445237023c6f (diff) | |
download | hdf5-d6c6a34a8f5876d21dee052c74426b0606b62d13.zip hdf5-d6c6a34a8f5876d21dee052c74426b0606b62d13.tar.gz hdf5-d6c6a34a8f5876d21dee052c74426b0606b62d13.tar.bz2 |
[svn-r19457] Bug fix for 1707 - H5Eset_auto causes a seg fault when an application uses -DH5_USE_16_API with the 1.8 library to compile. The cause is from the mismatch of H5Eprint1 and H5Eprint2 set
through H5Eset_auto. I changed the union in the structure H5E_auto_t. Another change is to
make H5Eget_auto fail if H5Eset_auto is called to set the printing function. I'll write a
document for it.
Tested on heiwa, jam, and amani.
The property change in configure.in, config, and Makefile.am came from the merge of the 1.8
library change.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/h5dump/h5dump.c | 18 | ||||
-rw-r--r-- | tools/h5jam/h5jam.c | 11 | ||||
-rw-r--r-- | tools/h5jam/h5unjam.c | 11 | ||||
-rw-r--r-- | tools/h5jam/tellub.c | 11 | ||||
-rw-r--r-- | tools/h5ls/h5ls.c | 6 | ||||
-rw-r--r-- | tools/h5stat/h5stat.c | 6 | ||||
-rw-r--r-- | tools/misc/h5mkgrp.c | 7 |
7 files changed, 53 insertions, 17 deletions
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index 261fe15..e304a41 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -4312,7 +4312,7 @@ main(int argc, const char *argv[]) hid_t fid, gid; char *fname = NULL; void *edata; - H5E_auto2_t func; + H5E_auto_t func; H5O_info_t oi; struct handler_t *hand; int i; @@ -4324,8 +4324,13 @@ main(int argc, const char *argv[]) dump_function_table = &ddl_function_table; /* Disable error reporting */ - H5Eget_auto2(H5E_DEFAULT, &func, &edata); - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eget_auto(&func, &edata); + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eget_auto(H5E_DEFAULT, &func, &edata); + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ /* Initialize h5tools lib */ h5tools_init(); @@ -4533,8 +4538,11 @@ done: HDfree(fname); /* To Do: clean up XML table */ - - H5Eset_auto2(H5E_DEFAULT, func, edata); +#ifdef H5_USE_16_API_DEFAULT + H5Eset_auto(func, edata); +#else /* H5_USE_16_API_DEFAULT */ + H5Eset_auto(H5E_DEFAULT, func, edata); +#endif /* H5_USE_16_API_DEFAULT */ leave(h5tools_getstatus()); } diff --git a/tools/h5jam/h5jam.c b/tools/h5jam/h5jam.c index 17b1384..14d3f6a 100644 --- a/tools/h5jam/h5jam.c +++ b/tools/h5jam/h5jam.c @@ -166,7 +166,7 @@ main (int argc, const char *argv[]) int h5fid; int ofid; void *edata; - H5E_auto2_t func; + H5E_auto_t func; hid_t ifile; hid_t plist; herr_t status; @@ -185,8 +185,13 @@ main (int argc, const char *argv[]) h5tools_setstatus(EXIT_SUCCESS); /* Disable error reporting */ - H5Eget_auto2(H5E_DEFAULT, &func, &edata); - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eget_auto(&func, &edata); + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eget_auto(H5E_DEFAULT, &func, &edata); + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ parse_command_line (argc, argv); diff --git a/tools/h5jam/h5unjam.c b/tools/h5jam/h5unjam.c index 8e31ce1..c5a337d 100644 --- a/tools/h5jam/h5unjam.c +++ b/tools/h5jam/h5unjam.c @@ -169,7 +169,7 @@ main(int argc, const char *argv[]) int ufid; int h5fid; void *edata; - H5E_auto2_t func; + H5E_auto_t func; hid_t ifile; off_t fsize; hsize_t usize; @@ -183,8 +183,13 @@ main(int argc, const char *argv[]) h5tools_setstatus(EXIT_SUCCESS); /* Disable error reporting */ - H5Eget_auto2(H5E_DEFAULT, &func, &edata); - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eget_auto(&func, &edata); + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eget_auto(H5E_DEFAULT, &func, &edata); + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ parse_command_line(argc, argv); diff --git a/tools/h5jam/tellub.c b/tools/h5jam/tellub.c index f1b6756..ba71712 100644 --- a/tools/h5jam/tellub.c +++ b/tools/h5jam/tellub.c @@ -129,7 +129,7 @@ main (int argc, const char *argv[]) { char *ifname; void *edata; - H5E_auto2_t func; + H5E_auto_t func; hid_t ifile; hsize_t usize; htri_t testval; @@ -140,8 +140,13 @@ main (int argc, const char *argv[]) h5tools_setstatus(EXIT_SUCCESS); /* Disable error reporting */ - H5Eget_auto2(H5E_DEFAULT, &func, &edata); - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eget_auto(&func, &edata); + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eget_auto(H5E_DEFAULT, &func, &edata); + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ parse_command_line (argc, argv); diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index b1d9ee9..115a86c 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -2417,7 +2417,11 @@ main(int argc, const char *argv[]) /* Turn off HDF5's automatic error printing unless you're debugging h5ls */ if(!show_errors_g) - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ /* Each remaining argument is an hdf5 file followed by an optional slash diff --git a/tools/h5stat/h5stat.c b/tools/h5stat/h5stat.c index fd21266..7cc098d 100644 --- a/tools/h5stat/h5stat.c +++ b/tools/h5stat/h5stat.c @@ -1544,7 +1544,11 @@ main(int argc, const char *argv[]) h5tools_setstatus(EXIT_SUCCESS); /* Disable error reporting */ - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ /* Initialize h5tools lib */ h5tools_init(); diff --git a/tools/misc/h5mkgrp.c b/tools/misc/h5mkgrp.c index 09f23ef..6d8a869 100644 --- a/tools/misc/h5mkgrp.c +++ b/tools/misc/h5mkgrp.c @@ -216,7 +216,12 @@ main(int argc, const char *argv[]) h5tools_setstatus(EXIT_SUCCESS); /* Disable the HDF5 library's error reporting */ - H5Eset_auto2(H5E_DEFAULT, NULL, NULL); +#ifdef H5_USE_16_API_DEFAULT + H5Eset_auto(NULL, NULL); +#else /* H5_USE_16_API_DEFAULT */ + H5Eset_auto(H5E_DEFAULT, NULL, NULL); +#endif /* H5_USE_16_API_DEFAULT */ + /* Initialize h5tools lib */ h5tools_init(); |