Author: fireball Date: Tue Jul 1 05:48:50 2008 New Revision: 34232
URL: http://svn.reactos.org/svn/reactos?rev=34232&view=rev Log: Yuri Sidorov jura@cp-lab.com - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details.
Modified: trunk/reactos/ntoskrnl/mm/virtual.c
Modified: trunk/reactos/ntoskrnl/mm/virtual.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/virtual.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/mm/virtual.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/virtual.c [iso-8859-1] Tue Jul 1 05:48:50 2008 @@ -70,7 +70,7 @@ PFN_NUMBER MdlBuffer[(sizeof(MDL) / sizeof(PFN_NUMBER)) + MI_MAPPED_COPY_PAGES + 1]; PMDL Mdl = (PMDL)MdlBuffer; ULONG TotalSize, CurrentSize, RemainingSize; - BOOLEAN FailedInProbe = FALSE, FailedInMapping = FALSE, FailedInMoving; + volatile BOOLEAN FailedInProbe = FALSE, FailedInMapping = FALSE, FailedInMoving; BOOLEAN PagesLocked; PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress; PVOID MdlAddress; @@ -225,7 +225,7 @@ { UCHAR StackBuffer[MI_POOL_COPY_BYTES]; ULONG TotalSize, CurrentSize, RemainingSize; - BOOLEAN FailedInProbe = FALSE, FailedInMoving, HavePoolAddress = FALSE; + volatile BOOLEAN FailedInProbe = FALSE, FailedInMoving, HavePoolAddress = FALSE; PVOID CurrentAddress = SourceAddress, CurrentTargetAddress = TargetAddress; PVOID PoolAddress; KAPC_STATE ApcState;