Bug 1431803 Turn __try into if(true) and __except into else in the chromium sandbox code r=bobowen,glandium

MinGW doesn't support __try / __except. There are a few mechanisms available
to hack around it and pseudo-support it, but these are untested in Firefox.

What is tested (and works) is replacing them with if(true) and else. So
we do that to neuter them in all places. There is only one situation where
we need to actively modify the code (because it always throws an exception)
and that situation is resolved in the other patch of this bug.

MozReview-Commit-ID: IySnfxDlmW3

--HG--
extra : rebase_source : 265405fee0cc5fc5776cacca744d569357fd5674
This commit is contained in:
Tom Ritter 2018-01-22 12:18:51 -06:00
parent 13b0b2923f
commit c8c38ab41b

View File

@ -57,6 +57,17 @@
*/
#if defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN)
#include "base/win/sdkdecls.h"
#endif
#ifdef __MINGW32__
/*
* MinGW doesn't support __try / __except. There are a few mechanisms available
* to hack around it and pseudo-support it, but these are untested in Firefox.
* What is tested (and works) is replacing them with if(true) and else.
*/
#define __try if(true)
#define __except(x) else
#endif /* __MINGW32__ */
#endif /* defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN) */
#endif /* MOZILLA_CONFIG_H */