}
+#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);
}
/*
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
{
SurfObj->pvBits = EngAllocMem(0 != (Flags & BMF_NOZEROINIT) ?
0 : FL_ZERO_MEMORY,
- SurfObj->cjBits, 0);
+ SurfObj->cjBits, TAG_DIB);
}
if (SurfObj->pvBits == NULL)
{
{
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++)
{
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]));
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);