Mercurial > jwe > octave
changeset 21141:34368609f62b
fix event-queue and unwind-protect exception warnings
* event-queue.h (event_queue_safe::warn_unhandled_exception):
New function.
(event_queue_safe::gripe_exception): Delete decl.
* event-queue.cc: New file.
(event_queue_safe::warn_unhandled_exception): New function.
* libinterp/corefcn/module.mk (COREFCN_SRC): Add it to the list
* unwind-prot.cc, unwind-prot.h
(unwind_protect_safe::warn_unhandled_exception): Rename from
unwind_protect_safe::warn_unhandled_exception. No longer static.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 25 Jan 2016 19:39:58 -0500 |
parents | e06e600f396a |
children | 76e0ef020dae |
files | libinterp/corefcn/event-queue.cc libinterp/corefcn/event-queue.h libinterp/corefcn/module.mk liboctave/util/unwind-prot.cc liboctave/util/unwind-prot.h |
diffstat | 5 files changed, 46 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libinterp/corefcn/event-queue.cc Mon Jan 25 19:39:58 2016 -0500 @@ -0,0 +1,36 @@ +/* + +Copyright (C) 2016 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + +*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "error.h" +#include "event-queue.h" + +void +event_queue_safe::warn_unhandled_exception (void) const +{ + warning ("unhandled exception in event_queue_safe handler. " + "It is a bug in Octave for this to happen. " + "Please help improve Octave by reporting it."); +}
--- a/libinterp/corefcn/event-queue.h Mon Jan 25 19:16:31 2016 -0500 +++ b/libinterp/corefcn/event-queue.h Mon Jan 25 19:39:58 2016 -0500 @@ -92,7 +92,7 @@ { private: - static void gripe_exception (void); + void warn_unhandled_exception (void) const; public: @@ -108,7 +108,7 @@ } catch (...) // Yes, the black hole. Remember we're in a dtor. { - gripe_exception (); + warn_unhandled_exception (); } } }
--- a/libinterp/corefcn/module.mk Mon Jan 25 19:16:31 2016 -0500 +++ b/libinterp/corefcn/module.mk Mon Jan 25 19:39:58 2016 -0500 @@ -145,6 +145,7 @@ libinterp/corefcn/ellipj.cc \ libinterp/corefcn/error.cc \ libinterp/corefcn/errwarn.cc \ + libinterp/corefcn/event-queue.cc \ libinterp/corefcn/fft.cc \ libinterp/corefcn/fft2.cc \ libinterp/corefcn/fftn.cc \
--- a/liboctave/util/unwind-prot.cc Mon Jan 25 19:16:31 2016 -0500 +++ b/liboctave/util/unwind-prot.cc Mon Jan 25 19:39:58 2016 -0500 @@ -29,10 +29,10 @@ #include "unwind-prot.h" void -unwind_protect_safe::err_unhandled_exception (void) +unwind_protect_safe::warn_unhandled_exception (void) const { - // FIXME: can this throw an exception? - // Yes, it can now (1/18/16). Maybe this needs to be re-done? - (*current_liboctave_error_handler) - ("internal: unhandled exception in unwind_protect handler"); + (*current_liboctave_warning_handler) + ("unhandled exception in unwind_protect_safe handler. " + "It is a bug in Octave for this to happen. " + "Please help improve Octave by reporting it."); }
--- a/liboctave/util/unwind-prot.h Mon Jan 25 19:16:31 2016 -0500 +++ b/liboctave/util/unwind-prot.h Mon Jan 25 19:39:58 2016 -0500 @@ -117,7 +117,7 @@ { private: - static void err_unhandled_exception (void); + void warn_unhandled_exception (void) const; public: @@ -133,7 +133,7 @@ } catch (...) // Yes, the black hole. Remember we're in a destructor. { - err_unhandled_exception (); + warn_unhandled_exception (); } } }