Author: cgutman
Date: Sat Dec 17 08:35:31 2011
New Revision: 54669

URL: http://svn.reactos.org/svn/reactos?rev=54669&view=rev
Log:
[WIN32K]
EngAllocMem:
 - Respect the FL_NONPAGED_MEMORY flag (actually allocate the memory from 
non-paged pool)
 - Fix an improper flag comparison that caused memory allocated with both 
FL_NONPAGED_MEMORY and FL_ZERO_MEMORY set to not be zeroed as requested

Modified:
    trunk/reactos/subsystems/win32/win32k/eng/mem.c

Modified: trunk/reactos/subsystems/win32/win32k/eng/mem.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/mem.c?rev=54669&r1=54668&r2=54669&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/mem.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/mem.c [iso-8859-1] Sat Dec 17 
08:35:31 2011
@@ -19,16 +19,19 @@
            ULONG MemSize,
            ULONG Tag)
 {
-  PVOID newMem;
+    PVOID newMem;
 
-  newMem = ExAllocatePoolWithTag(PagedPool, MemSize, Tag);
+    newMem = ExAllocatePoolWithTag((Flags & FL_NONPAGED_MEMORY) ? NonPagedPool 
: PagedPool,
+                                   MemSize,
+                                   Tag);
 
-  if (Flags == FL_ZERO_MEMORY && NULL != newMem)
-  {
-    RtlZeroMemory(newMem, MemSize);
-  }
+    if (newMem == NULL)
+        return NULL;
 
-  return newMem;
+    if (Flags & FL_ZERO_MEMORY)
+        RtlZeroMemory(newMem, MemSize);
+
+    return newMem;
 }
 
 /*


Reply via email to