summaryrefslogtreecommitdiffstats
path: root/test/dtransform.c
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 /test/dtransform.c
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 'test/dtransform.c')
-rw-r--r--test/dtransform.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/dtransform.c b/test/dtransform.c
index 5d5cefe..15c5934 100644
--- a/test/dtransform.c
+++ b/test/dtransform.c
@@ -641,7 +641,7 @@ static int
test_set(void)
{
hid_t dxpl_id = -1;
- H5E_auto2_t func;
+ H5E_auto_t func;
const char *str = "(9/5.0)*x + 32";
char *ptrgetTest = NULL;
@@ -654,9 +654,15 @@ test_set(void)
TEST_ERROR
/* Test get before set */
- H5Eget_auto2(H5E_DEFAULT, &func, NULL);
+#ifdef H5_USE_16_API_DEFAULT
+ H5Eget_auto(&func, NULL);
- H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
+ H5Eset_auto(NULL, NULL);
+#else /* H5_USE_16_API_DEFAULT */
+ H5Eget_auto(H5E_DEFAULT, &func, NULL);
+
+ H5Eset_auto(H5E_DEFAULT, NULL, NULL);
+#endif /* H5_USE_16_API_DEFAULT */
if(H5Pget_data_transform(dxpl_id, ptrgetTest, HDstrlen(str) + 1) < 0)
PASSED()
@@ -693,7 +699,11 @@ test_set(void)
TESTING("H5Pset_data_transform (set with invalid transform 8)")
INVALID_SET_TEST("(9/5)*x + x^2");
- H5Eset_auto2(H5E_DEFAULT, func, NULL);
+#ifdef H5_USE_16_API_DEFAULT
+ H5Eset_auto(func, NULL);
+#else /* H5_USE_16_API_DEFAULT */
+ H5Eset_auto(H5E_DEFAULT, func, NULL);
+#endif /* H5_USE_16_API_DEFAULT */
if(H5Pclose(dxpl_id) < 0)
TEST_ERROR