GNOME Bugzilla – Bug 568460
Add a gperl_callback_invoke variant that traps exceptions
Last modified: 2021-07-05 12:22:19 UTC
For various applications, we need a gperl_callback_invoke variant that traps exceptions. Since we can't change GPerlCallback, I think it would make sense to add a new function gperl_callback_invoke_trapped that would basically be a copy of gperl_callback_invoke with exception handling added. The exception handling code can be copied from GPERL_CLOSURE_MARSHAL_CALL, I think. When doing this, it would also make sense to add a private function _gperl_callback_invoke_real which takes a call_exception_handlers boolean and a list of arguments. gperl_callback_invoke and its _trapped variant could then convert their va_list arguments to a list and just call _gperl_callback_invoke_real. When this is done, we can audit the GPerlCallback users for whether they should be switched to using the _trapped variant.
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME?utf8=%E2%9C%93&filter=perl- Thank you for your understanding and your help.