Re: GNOME GTK-- Projects
- From: Michael Hudson <mwh21 cam ac uk>
- To: Erik Andersen <andersen inconnect com>
- cc: Gnome List <gnome-list gnome org>
- Subject: Re: GNOME GTK-- Projects
- Date: Mon, 1 Jun 1998 20:30:33 +0000 (/usr/local/etc/localtime)
On Mon, 1 Jun 1998, Erik Andersen wrote:
> On Mon, 1 Jun 1998, Michael Hudson wrote:
> > There's no guarantee that would work, because the exceptions would have to
> > propogate through gtk code, which is in C, not C++. It might work with
> > gcc/g++, but it might not work everywhere. (it wouldn't work using
> > CodeWarrior on the Mac, not that that's an issue here, just an example
> > that it _doesn't_ always work).
> >
> > Michael Hudson
[ a nice idea for configurable error handling elided ]
> Anyway, with something like this in place, anybody writing an application
> (or a wrapper library) could then simply write their own error handler
> function. For example, Gtk-- could write an error handler that looks like:
>
> void GTKmm_GTK_Error_Handler(GtkErrorStruct error)
> {
> throw (error);
> }
>
> which will get called by gtk+ when an error occurs. It is then very easy
> to modify the Gtk--.m4 macro to ensure that the right thing is done by the
> compiler WRT exceptions to ensure that this is handled.
>
> -Erik
>
Did you read my post?
If not why did you quote it?
Unless you compile GTK+ in C++, there's no guarantee that exceptions will
be able to propgate through the GTK+ code.
At the point of call of your GTKmm_GTK_Error_Handler above the stack is
likely to look like this:
GTK_Widget::whatever
gtk_widget_whatever **
_gdk_internal_gubbings **
GTKmm_GTK_Error_Handler
The functions marked ** will have been compiled as C, so when
GTKmm_GTK_Error_Handler throws an exception, you can't say what's going to
happen. What worst is this will probably work - most of the time.
This isn't to say configurable error reporting isn't a very, very good
idea, but C and C++ don't always mix perfectly.
Michael Hudson
Jesus College
Cambridge
mwh21@cam.ac.uk
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]