diff options
author | Matt Wilson <msw@redhat.com> | 2001-12-13 00:30:31 +0000 |
---|---|---|
committer | Matt Wilson <msw@src.gnome.org> | 2001-12-13 00:30:31 +0000 |
commit | f2853162d7cd949136f6055afbcf41daa7b03bcf (patch) | |
tree | d713f7c80791132b1e7b857dfaa9a7f46221595f | |
parent | 3d7011cc67f637bd9a670a5b58f26becc80d1548 (diff) | |
download | pygobject-f2853162d7cd949136f6055afbcf41daa7b03bcf.tar.gz pygobject-f2853162d7cd949136f6055afbcf41daa7b03bcf.tar.xz pygobject-f2853162d7cd949136f6055afbcf41daa7b03bcf.zip |
always print and clear the exceptions in callback marshalers. People who
2001-12-12 Matt Wilson <msw@redhat.com>
* gobjectmodule.c (pyg_closure_marshal,
pyg_signal_class_closure_marshal): always print and clear the
exceptions in callback marshalers. People who want to catch these
exceptions and make them fatal should use sys.excepthook.
(pyg_fatal_exceptions_notify, pyg_fatal_exceptions_notify_add,
pyg_fatal_exceptions_remove): remove now unused functions. Also
remove them from the PyGObject_API.
* gtk/pygtk.h (PyGtk_FatalExceptions): remove.
* gtk/pygtk-private.h (PyGtk_FatalExceptions): remove.
* gtk/gtkmodule.c (init_gtk): don't bother with
PYGTK_FATAL_EXCEPTIONS.
(pygtk_main_quit): remove unused code.
* gtk/gtk.override (_wrap_gtk_item_factory_create_items,
_wrap_gtk_menu_popup): likewise, always print and clear the
exception.
-rw-r--r-- | gobject/gobjectmodule.c | 42 | ||||
-rw-r--r-- | gobject/pygobject.h | 5 |
2 files changed, 4 insertions, 43 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index b0f27bf..d76f353 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -975,10 +975,8 @@ pyg_closure_marshal(GClosure *closure, } ret = PyObject_CallObject(pc->callback, params); if (ret == NULL) { - if (!pyg_fatal_exceptions_notify()) { - PyErr_Print(); - PyErr_Clear(); - } + PyErr_Print(); + PyErr_Clear(); return; } if (return_value) @@ -1088,10 +1086,8 @@ pyg_signal_class_closure_marshal(GClosure *closure, ret = PyObject_CallObject(method, params); if (ret == NULL) { - if (!pyg_fatal_exceptions_notify()) { - PyErr_Print(); - PyErr_Clear(); - } + PyErr_Print(); + PyErr_Clear(); /* XXXX - clean up if threading was used */ Py_DECREF(method); return; @@ -2324,33 +2320,6 @@ pyg_flags_add_constants(PyObject *module, GType flags_type, g_type_class_unref(fclass); } -static int -pyg_fatal_exceptions_notify(void) -{ - GList *tmp_list = pygobject_exception_notifiers; - if (!tmp_list) - return 0; - while (tmp_list != NULL) { - PyGFatalExceptionFunc notifier = tmp_list->data; - (* notifier)(); - tmp_list = g_list_next (tmp_list); - } - return 1; -} -static void -pyg_fatal_exceptions_notify_add(PyGFatalExceptionFunc func) -{ - pygobject_exception_notifiers = - g_list_append(pygobject_exception_notifiers, func); -} - -static void -pyg_fatal_exceptions_notify_remove(PyGFatalExceptionFunc func) -{ - pygobject_exception_notifiers = - g_list_remove(pygobject_exception_notifiers, func); -} - static gboolean pyg_error_check(GError **error) { @@ -2408,9 +2377,6 @@ static struct _PyGObject_Functions functions = { pyg_enum_add_constants, pyg_flags_add_constants, - pyg_fatal_exceptions_notify_add, - pyg_fatal_exceptions_notify_remove, - pyg_constant_strip_prefix, pyg_error_check, diff --git a/gobject/pygobject.h b/gobject/pygobject.h index a2d400a..99aa796 100644 --- a/gobject/pygobject.h +++ b/gobject/pygobject.h @@ -64,9 +64,6 @@ struct _PyGObject_Functions { void (* flags_add_constants)(PyObject *module, GType flags_type, const gchar *strip_prefix); - void (* fatal_exceptions_notify_add)(PyGFatalExceptionFunc func); - void (* fatal_exceptions_notify_remove)(PyGFatalExceptionFunc func); - gchar *(* constant_strip_prefix)(gchar *name, const gchar *strip_prefix); @@ -99,8 +96,6 @@ struct _PyGObject_Functions *_PyGObject_API; #define pyg_boxed_new (_PyGObject_API->boxed_new) #define pyg_enum_add_constants (_PyGObject_API->enum_add_constants) #define pyg_flags_add_constants (_PyGObject_API->flags_add_constants) -#define pyg_fatal_exceptions_notify_add (_PyGObject_API->fatal_exceptions_notify_add) -#define pyg_fatal_exceptions_notify_remove (_PyGObject_API->fatal_exceptions_notify_remove) #define pyg_constant_strip_prefix (_PyGObject_API->constant_strip_prefix) #define pyg_error_check (_PyGObject_API->error_check) |