Mercurial > octave
changeset 21342:798273bbe551
avoid infinite recursion in SparseCholError
* sparse-utils.cc (sparse_chol_error_internal): New function.
(SparseCholError): Always define both variants to call
sparse_chol_error_internal.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 24 Feb 2016 23:17:14 -0500 |
parents | ae384d86196e |
children | 980abb267014 |
files | liboctave/util/sparse-util.cc |
diffstat | 1 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/util/sparse-util.cc Wed Feb 24 10:48:44 2016 -0800 +++ b/liboctave/util/sparse-util.cc Wed Feb 24 23:17:14 2016 -0500 @@ -31,35 +31,33 @@ #include "oct-sparse.h" #include "sparse-util.h" -// FIXME: this overload is here due to API change in SuiteSparse (3.1 -> 3.2) - -void -SparseCholError (int status, char *file, int line, char *message) +static inline void +sparse_chol_error_internal (int status, const char *file, + int line, const char *message) { - SparseCholError (status, file, line, message); -} - #ifdef HAVE_CHOLMOD - -void -SparseCholError (int status, const char *file, int line, const char *message) -{ // Ignore CHOLMOD_NOT_POSDEF, since we handle that in Fchol as an // error or exit status. if (status != CHOLMOD_NOT_POSDEF) (*current_liboctave_warning_with_id_handler) ("Octave:cholmod-message", "warning %i, at line %i in file %s: %s", status, line, file, message); +#endif } -#else +// FIXME: this overload is here due to API change in SuiteSparse (3.1 -> 3.2) void -SparseCholError (int status, const char *, int, const char *) +SparseCholError (int status, char *file, int line, char *message) { + sparse_chol_error_internal (status, file, line, message); } -#endif +void +SparseCholError (int status, const char *file, int line, const char *message) +{ + sparse_chol_error_internal (status, file, line, message); +} int SparseCholPrint (const char *fmt, ...)