[WIN32K]
authorCameron Gutman <aicommander@gmail.com>
Sat, 17 Dec 2011 08:35:31 +0000 (08:35 +0000)
committerCameron Gutman <aicommander@gmail.com>
Sat, 17 Dec 2011 08:35:31 +0000 (08:35 +0000)
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

svn path=/trunk/; revision=54669

reactos/subsystems/win32/win32k/eng/mem.c

index 93d7fb5..3427b8a 100644 (file)
@@ -19,16 +19,19 @@ EngAllocMem(ULONG Flags,
            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;
 }
 
 /*