summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2010-09-21 16:46:38 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2010-09-21 16:46:38 (GMT)
commitd6c6a34a8f5876d21dee052c74426b0606b62d13 (patch)
tree67b0dddc97926eae54a6fd23a563a4e2296dabab /tools
parentba71366f9867bd2d817abf6715a5445237023c6f (diff)
downloadhdf5-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.c18
-rw-r--r--tools/h5jam/h5jam.c11
-rw-r--r--tools/h5jam/h5unjam.c11
-rw-r--r--tools/h5jam/tellub.c11
-rw-r--r--tools/h5ls/h5ls.c6
-rw-r--r--tools/h5stat/h5stat.c6
-rw-r--r--tools/misc/h5mkgrp.c7
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();