diff --git a/reactos/ntoskrnl/rtl/libsupp.c b/reactos/ntoskrnl/rtl/libsupp.c index 5221937b58d..b0193cd8d99 100644 --- a/reactos/ntoskrnl/rtl/libsupp.c +++ b/reactos/ntoskrnl/rtl/libsupp.c @@ -74,13 +74,18 @@ RtlpAllocateMemory(ULONG Bytes, } +#define TAG_USTR TAG('U', 'S', 'T', 'R') +#define TAG_ASTR TAG('A', 'S', 'T', 'R') +#define TAG_OSTR TAG('O', 'S', 'T', 'R') VOID STDCALL RtlpFreeMemory(PVOID Mem, ULONG Tag) { - ExFreePoolWithTag(Mem, - Tag); + if (Tag == TAG_ASTR || Tag == TAG_OSTR || Tag == TAG_USTR) + ExFreePool(Mem); + else + ExFreePoolWithTag(Mem, Tag); } /* diff --git a/reactos/subsystems/win32/win32k/eng/surface.c b/reactos/subsystems/win32/win32k/eng/surface.c index bda6561e129..afe3b9afbbe 100644 --- a/reactos/subsystems/win32/win32k/eng/surface.c +++ b/reactos/subsystems/win32/win32k/eng/surface.c @@ -325,7 +325,7 @@ IntCreateBitmap(IN SIZEL Size, SurfObj->lDelta = DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(BMF_8BPP)); SurfObj->cjBits = SurfObj->lDelta * Size.cy; UncompressedFormat = BMF_8BPP; - UncompressedBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, 0); + UncompressedBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, TAG_DIB); Decompress8bpp(Size, (BYTE *)Bits, (BYTE *)UncompressedBits, SurfObj->lDelta); } else @@ -356,7 +356,7 @@ IntCreateBitmap(IN SIZEL Size, { SurfObj->pvBits = EngAllocMem(0 != (Flags & BMF_NOZEROINIT) ? 0 : FL_ZERO_MEMORY, - SurfObj->cjBits, 0); + SurfObj->cjBits, TAG_DIB); } if (SurfObj->pvBits == NULL) { diff --git a/reactos/subsystems/win32/win32k/eng/xlate.c b/reactos/subsystems/win32/win32k/eng/xlate.c index f484bc3ee7b..1b1265490c9 100644 --- a/reactos/subsystems/win32/win32k/eng/xlate.c +++ b/reactos/subsystems/win32/win32k/eng/xlate.c @@ -243,7 +243,7 @@ IntEngCreateXlate(USHORT DestPalType, USHORT SourcePalType, { XlateObj->cEntries = SourcePalGDI->NumColors; XlateObj->pulXlate = - EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, 0); + EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, TAG_XLATEOBJ); XlateObj->flXlate |= XO_TRIVIAL; for (i = 0; i < XlateObj->cEntries; i++) @@ -264,7 +264,7 @@ IntEngCreateXlate(USHORT DestPalType, USHORT SourcePalType, { XlateObj->cEntries = SourcePalGDI->NumColors; XlateObj->pulXlate = - EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, 0); + EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, TAG_XLATEOBJ); for (i = 0; i < XlateObj->cEntries; i++) XlateObj->pulXlate[i] = ShiftAndMask(XlateGDI, *((ULONG *)&SourcePalGDI->IndexedColors[i])); @@ -379,7 +379,7 @@ IntEngCreateSrcMonoXlate(HPALETTE PaletteDest, XlateObj = GDIToObj(XlateGDI, XLATE); XlateObj->cEntries = 2; - XlateObj->pulXlate = EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, 0); + XlateObj->pulXlate = EngAllocMem(0, sizeof(ULONG) * XlateObj->cEntries, TAG_XLATEOBJ); if (XlateObj->pulXlate == NULL) { PALETTE_UnlockPalette(DestPalGDI); diff --git a/reactos/subsystems/win32/win32k/ntuser/cursoricon.c b/reactos/subsystems/win32/win32k/ntuser/cursoricon.c index c1c8210e613..caab60dd274 100644 --- a/reactos/subsystems/win32/win32k/ntuser/cursoricon.c +++ b/reactos/subsystems/win32/win32k/ntuser/cursoricon.c @@ -317,7 +317,7 @@ IntSetupCurIconHandles(PWINSTATION_OBJECT WinSta) NULL, 0, sizeof(CURICON_PROCESS), - 0, + TAG_DIB, 128); InitializeListHead(&gCurIconList); diff --git a/reactos/subsystems/win32/win32k/ntuser/msgqueue.c b/reactos/subsystems/win32/win32k/ntuser/msgqueue.c index d472d8ec2cb..ebed9aad710 100644 --- a/reactos/subsystems/win32/win32k/ntuser/msgqueue.c +++ b/reactos/subsystems/win32/win32k/ntuser/msgqueue.c @@ -155,14 +155,14 @@ MsqInitializeImpl(VOID) NULL, 0, sizeof(USER_MESSAGE), - 0, + TAG_USRMSG, 256); ExInitializePagedLookasideList(&TimerLookasideList, NULL, NULL, 0, sizeof(TIMER_ENTRY), - 0, + TAG_TIMER, 64); return(STATUS_SUCCESS);