[KERNEL32] Fix bug in CreateFiberEx that made it replace the CONTEXT_FULL bits rather...
authorStefan Ginsberg <stefanginsberg@gmail.com>
Thu, 8 Oct 2015 16:26:29 +0000 (16:26 +0000)
committerStefan Ginsberg <stefanginsberg@gmail.com>
Thu, 8 Oct 2015 16:26:29 +0000 (16:26 +0000)
commita11d988984e0c99470d56304d3f4d50281daf234
tree0d7aa398e905b3bb474e848fe43cbf5daa60c5e6
parent68958bc0832511411ebbcfd46ce7dc227755146e
[KERNEL32] Fix bug in CreateFiberEx that made it replace the CONTEXT_FULL bits rather than ORing in CONTEXT_FLOATING_POINT when caller wanted FPU state saved. SwitchToFiber checks for CONTEXT_FULL OR CONTEXT_FLOATING_POINT so the save/restore would fail. Moreover, fix BaseInitializeContext that was not checking CONTEXT_FLOATING_POINT correctly for some fibers and, as a result, not initializing FPU context correctly for callers of ConvertThreadToFiberEx. Finally, because trying to access address 0x6 is generally a bad idea, fix SwitchToFiber to use the correct shared user data offsets. Misc cleanup all around. Bonus: Sort TEB/PEB asm offsets and add GDI Batch Count offset, needed soon.

svn path=/trunk/; revision=69466
reactos/dll/win32/kernel32/client/fiber.c
reactos/dll/win32/kernel32/client/i386/fiber.S
reactos/dll/win32/kernel32/client/utils.c
reactos/include/asm/ks386.template.h
reactos/include/ndk/i386/asm.h