[PATCH v3] ucrtbase: Implement _seh_filter_exe and _seh_filter_dll

Piotr Caban piotr.caban at gmail.com
Mon Nov 9 04:42:09 CST 2015


On 11/06/15 21:59, Martin Storsjö wrote:
> On Fri, 6 Nov 2015, Piotr Caban wrote:
>
>> On 11/05/15 13:52, Martin Storsjo wrote:
>>> +int CDECL _seh_filter_dll(MSVCRT_ulong ex, PEXCEPTION_POINTERS ptr)
>>> +{
>>> +    TRACE("(%08x,%p)\n", ex, ptr);
>>> +    /* I assume ptr->ExceptionRecord->ExceptionCode is the same as
>>> ex */
>>> +    return msvcrt_exception_filter(ptr);
>>> +}
>> This function should behave like __CppXcptFilter.
>
> Hmm, ok, so the difference is that it should return immediately unless
> ex == CXX_EXCEPTION?
Yes.

> Anyway, since CXX_EXCEPTION only is defined in cppexcept.h (and except.c
> doesn't include it), I could move it to cpp.c or to
> except_{arm,i386,x86_64}.c - why is __CppXcptFilter defined
> (identically) in these files btw, and why do they have
> -arch=i386,x86_64,arm in the spec file - doesn't that amount to pretty
> much all current targets?
In theory you can build wine on other platforms. I don't know why it was 
done this way.

Instead of adding new functions you can use _XcptFilter and 
__CppXcptFilter in spec file.

Thanks,
Piotr



More information about the wine-devel mailing list