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 /gobject/gobjectmodule.c | |
| 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.
Diffstat (limited to 'gobject/gobjectmodule.c')
| -rw-r--r-- | gobject/gobjectmodule.c | 42 |
1 files changed, 4 insertions, 38 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, |
