From 79811cb5a6ce6447f910f41a48d24453ccd82b3d Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 13 Jul 2008 19:14:39 +0000 Subject: [PATCH] more correct fix by Alex svn path=/trunk/; revision=34467 --- reactos/ntoskrnl/ex/handle.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/reactos/ntoskrnl/ex/handle.c b/reactos/ntoskrnl/ex/handle.c index 4d1693b7fc3..de0bd74d34d 100644 --- a/reactos/ntoskrnl/ex/handle.c +++ b/reactos/ntoskrnl/ex/handle.c @@ -209,18 +209,12 @@ ExpFreeHandleTable(IN PHANDLE_TABLE HandleTable) { PEPROCESS Process = HandleTable->QuotaProcess; ULONG i, j; - ULONG TableLevel; - ULONG_PTR TableBase; + ULONG_PTR TableCode = HandleTable->TableCode; + ULONG TableLevel = TableCode & 3; + ULONG_PTR TableBase = TableCode & ~3; PHANDLE_TABLE_ENTRY Level1, *Level2, **Level3; PAGED_CODE(); - /* Get the table code */ - TableBase = *(volatile ULONG_PTR*)&HandleTable->TableCode; - - /* Extract the table level and actual table base */ - TableLevel = (ULONG)(TableBase & 3); - TableBase = TableBase - TableLevel; - /* Check which level we're at */ if (!TableLevel) { @@ -504,17 +498,11 @@ ExpAllocateHandleTableEntrySlow(IN PHANDLE_TABLE HandleTable, PHANDLE_TABLE_ENTRY Low = NULL, *Mid, **High, *SecondLevel, **ThirdLevel; ULONG NewFree, FirstFree; PVOID Value; - ULONG_PTR TableBase; - ULONG TableLevel; + ULONG_PTR TableCode = HandleTable->TableCode; + ULONG_PTR TableBase = TableCode & ~3; + ULONG TableLevel = (ULONG)(TableCode & 3); PAGED_CODE(); - /* Get the table code */ - TableBase = *(volatile ULONG_PTR*)&HandleTable->TableCode; - - /* Extract the table level and actual table base */ - TableLevel = (ULONG)(TableBase & 3); - TableBase = TableBase - TableLevel; - /* Check how many levels we already have */ if (!TableLevel) {