diff --git a/src/include/H5Fed_retrieve.h b/src/include/H5Fed_retrieve.h index 541cdfb..76542cf 100644 --- a/src/include/H5Fed_retrieve.h +++ b/src/include/H5Fed_retrieve.h @@ -41,8 +41,8 @@ H5FedBeginTraverseEntities ( ) { H5_API_ENTER2 (h5t_iterator_p, "f=0x%p, codim=%d", f, codim); h5t_iterator_p iter; - TRY2 (iter = h5_calloc (1, sizeof (*iter))); - TRY2 (h5t_init_leaf_iterator (f, iter, codim)); + TRY3 (h5t_iterator_p, iter = (h5t_iterator_p)h5_calloc (1, sizeof (*iter))); + TRY3 (h5t_iterator_p, h5t_init_leaf_iterator (f, iter, codim)); H5_API_RETURN (iter); } @@ -53,8 +53,8 @@ H5FedBeginTraverseBoundaryFaces ( ) { H5_API_ENTER2 (h5t_iterator_p, "f=0x%p, codim=%d", f, codim); h5t_iterator_p iter; - TRY2 (iter = h5_calloc (1, sizeof (*iter))); - TRY2 (h5t_init_boundary_face_iterator (f, iter, codim)); + TRY3 (h5t_iterator_p, iter = (h5t_iterator_p)h5_calloc (1, sizeof (*iter))); + TRY3 (h5t_iterator_p, h5t_init_boundary_face_iterator (f, iter, codim)); H5_API_RETURN (iter); } diff --git a/src/include/h5core/h5_core.h b/src/include/h5core/h5_core.h index dcc02b6..677bc56 100644 --- a/src/include/h5core/h5_core.h +++ b/src/include/h5core/h5_core.h @@ -180,6 +180,12 @@ done: \ goto done; \ } +#define TRY3( type, expr ) \ + if ((int64_t)(ptrdiff_t)(expr) <= (int64_t)H5_ERR) { \ + ret_value = (type) H5_ERR; \ + goto done; \ + } + #ifdef __cplusplus } #endif