From fda8db4dd34df428152ef7099ef93d4dfcf76498 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Tue, 1 Jul 2008 10:48:50 +0000 Subject: [PATCH] Yuri Sidorov - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details. svn path=/trunk/; revision=34232 --- reactos/ntoskrnl/mm/virtual.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/mm/virtual.c b/reactos/ntoskrnl/mm/virtual.c index ba0a2eb1967..81bed85ee7d 100644 --- a/reactos/ntoskrnl/mm/virtual.c +++ b/reactos/ntoskrnl/mm/virtual.c @@ -70,7 +70,7 @@ MiDoMappedCopy(IN PEPROCESS SourceProcess, 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 @@ MiDoPoolCopy(IN PEPROCESS SourceProcess, { 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;