[ros-diffs] [ion] 22646: - Fix a typo in a comparison (& vs &&) which was breaking GlobalReAlloc in some cases. - Fix a missing | (OR) in GlobalAlloc which created an invalid handle if the first allocation was of size 0.
ion at svn.reactos.org
ion at svn.reactos.org
Tue Jun 27 00:48:13 CEST 2006
Author: ion
Date: Tue Jun 27 02:48:12 2006
New Revision: 22646
URL: http://svn.reactos.org/svn/reactos?rev=22646&view=rev
Log:
- Fix a typo in a comparison (& vs &&) which was breaking GlobalReAlloc in some cases.
- Fix a missing | (OR) in GlobalAlloc which created an invalid handle if the first allocation was of size 0.
Modified:
trunk/reactos/dll/win32/kernel32/include/baseheap.h
trunk/reactos/dll/win32/kernel32/mem/global.c
Modified: trunk/reactos/dll/win32/kernel32/include/baseheap.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include/baseheap.h?rev=22646&r1=22645&r2=22646&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/include/baseheap.h (original)
+++ trunk/reactos/dll/win32/kernel32/include/baseheap.h Tue Jun 27 02:48:12 2006
@@ -65,6 +65,7 @@
#define BASE_TRACE_FAILURE() \
BH_PRINT("[BASE_HEAP] %s : Failing %d\n", \
__FUNCTION__, __LINE__)
+
//
// The handle structure for global heap handles.
// Notice that it nicely overlays with RTL_HANDLE_ENTRY.
Modified: trunk/reactos/dll/win32/kernel32/mem/global.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/mem/global.c?rev=22646&r1=22645&r2=22646&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/mem/global.c (original)
+++ trunk/reactos/dll/win32/kernel32/mem/global.c Tue Jun 27 02:48:12 2006
@@ -117,7 +117,7 @@
if (!Ptr)
{
/* We don't have a valid pointer, but so reuse this handle */
- HandleEntry->Flags = BASE_HEAP_ENTRY_FLAG_REUSE;
+ HandleEntry->Flags |= BASE_HEAP_ENTRY_FLAG_REUSE;
}
/* Check if the handle is discardable */
@@ -486,7 +486,7 @@
if (Ptr)
{
/* Make sure the handle isn't locked */
- if ((uFlags & GMEM_MOVEABLE) & !(HandleEntry->LockCount))
+ if ((uFlags & GMEM_MOVEABLE) && !(HandleEntry->LockCount))
{
/* Free the current heap */
RtlFreeHeap(hProcessHeap, Flags, Ptr);
More information about the Ros-diffs
mailing list