On 21 Dec 2017, at 07:11, David Chisnall <[email protected]> wrote:
> 
> On 20 Dec 2017, at 21:08, Lobron, David <[email protected]> wrote:
>> 
>> The [NSException raise] method just calls "@throw self" when 
>> _NATIVE_OBJC_EXCEPTIONS is defined
> 
> It does, but [NSException raise] is another function (well, method, but after 
> the call to objc_msgSend it’s a function).  The exception is thrown from 
> there, not from the stack frame containing the @catch block.

It turns out that this is the crucial bit: throwing an Objective-C exception 
through a C++ catch (or ObjC++ @catch) block was broken.  This is pretty 
uncommon, but we now have a test for it and it appears to be passing.

I’ve also tweaked the build system so that we now don’t build a separate 
libobjcxx, which should give a more consistent interface.

David


_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to