PSEH2 uses a special mechanism to deal with nested try blocks inside the same function. Instead of pushing a second exception registration record on the exception list, it uses an internal pointer to handle the different try-levels.
But when a function using SEH is inlined, the resulting code will push 2 registration frames on the stack. Now it happens with GCC 4.7.1 that these frames get shuffled on the stack, putting one for the inner try on a higher stack address. This is something that RtlUnwind regards as a bug and throws a STATUS_INVALID_UNWIND_TARGET exception. This was the reason for the crashing PSEH2_TEST, when compiled with GCC 4.7.1.
To fix this, I added a mechanism that will prevent functions using SEH from being inlined.
svn path=/trunk/; revision=57159
- Check result of walking the import descriptor and properly fail in case it wasn't successful.
See issue #7289 for more details.
svn path=/trunk/; revision=57156
[NTOSKRNL]: Remove an ASSERT(FALSE) that was only there for testing.
[NTOSKRNL]: Enable richard's ARM3 section code unconditionally for all non-file backed sections. Works4me. Let's see what Testbot says.
svn path=/trunk/; revision=57155
- Add some optimizations (GCC) on compilation of libMesa
- Move opengl32 to the opengl directory
- Disable ICD refcounting for now, it does more harm than good.
svn path=/trunk/; revision=57153
* Call cl directly instead of its full path using <CMAKE_C_COMPILER>. Figuring out why it didn't work is left as an exercise for the reader.
svn path=/trunk/; revision=57152
Hermès Bélusca:
* Fix a bug in the way we compiled the boot sectors on the x64 build.
* Consistently set the mc compiler, like gcc builds.
* Use proper variables when referring to the compilers.
See issue #7297 for more details.
svn path=/trunk/; revision=57151
- Fix a bug causing FIONREAD to return an incorrect value after a datagram receive completes when only returning a subset of the data (returns WSAEMSGSIZE)
svn path=/trunk/; revision=57147
- Add fake iostream headers to fix MSVC compilation
- hack numerical_limits<float>::infinity() implementation until we have a real C++ library
Oddly, empty headers seem to be enough for now
svn path=/trunk/; revision=57136
[IPHLPAPI] - Fix a use after free in getNthInterfaceEntity (CID 716795 - partly reverts r53190). Fix a possible double free in getArpTable (CID 716796).
svn path=/trunk/; revision=57127
- Use wine's wctype table in CRT for iswctype() function. Previous implementation was returning incorrect information for non-Latin characters. Problem found and fixed by Sergey Shamanaev (seven_ro).
- Move wctype.c from libwine to lib/sdk/crt instead of making yet another copy of it (currently there is one more in tools/unicode). Suggested by Amine Khaldi.
See issue #5090 for more details.
svn path=/trunk/; revision=57119
- Add support for getting and setting SO_EXCLUSIVEADDRUSE
- Add support for setting SO_REUSEADDR
[AFD]
- Implement proper TDI way of indicating a reusable address file
- More work remains in TCP/IP to support this
svn path=/trunk/; revision=57115
- Fix screensave access hangs but it was recoverable and did not crash. The new ATI points seem to kick in so disabling them for now and leaving error prints. See bug 7225, need to separate the message queue.
svn path=/trunk/; revision=57114