Author: tkreuzer
Date: Wed Jun 4 11:15:24 2008
New Revision: 33856
URL:
http://svn.reactos.org/svn/reactos?rev=33856&view=rev
Log:
- fix mem leak when failing to create an extpen with penstyles
- rename a tag, change a tag, remove unused tag
Modified:
trunk/reactos/subsystems/win32/win32k/include/tags.h
trunk/reactos/subsystems/win32/win32k/objects/pen.c
Modified: trunk/reactos/subsystems/win32/win32k/include/tags.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] Wed Jun 4 11:15:24
2008
@@ -62,7 +62,6 @@
#define TAG_COORD TAG('C', 'O', 'R', 'D') /* coords
*/
#define TAG_GDIDEV TAG('G', 'd', 'e', 'v') /* gdi
dev support*/
#define TAG_GDIPDEV TAG('G', 'D', 'e', 'v') /* gdi
PDev */
-#define TAG_GDIOBJ TAG('G', 'D', 'I', 'O') /* gdi
obj */
#define TAG_GDIHNDTBLE TAG('G', 'D', 'I', 'H') /* gdi
handle table */
#define TAG_GDIICM TAG('G', 'i', 'c', 'm') /* gdi
Icm */
#define TAG_DIB TAG('D', 'I', 'B', ' ') /* dib
*/
@@ -71,13 +70,13 @@
#define TAG_PALETTEMAP TAG('P', 'A', 'L', 'M') /*
palette mapping */
#define TAG_PRINT TAG('P', 'R', 'N', 'T') /* print
*/
#define TAG_GDITEXT TAG('T', 'X', 'T', 'O') /* text
*/
-#define TAG_EXTPEN TAG('X', 'P', 'E', 'N') /* extpen
*/
+#define TAG_PENSTYLES TAG('G', 's', 't', 'y') /* pen
styles */
/* Eng objects */
#define TAG_CLIPOBJ TAG('C', 'L', 'P', 'O') /* clip
object */
#define TAG_DRIVEROBJ TAG('D', 'R', 'V', 'O') /* driver
object */
#define TAG_FONT TAG('F', 'N', 'T', 'E') /* font
entry */
-#define TAG_FONTOBJ TAG('F', 'N', 'T', 'O') /* font
object */
+#define TAG_FONTOBJ TAG('G', 'f', 'n', 't') /* font
object */
#define TAG_WNDOBJ TAG('W', 'N', 'D', 'O') /* window
object */
#define TAG_XLATEOBJ TAG('X', 'L', 'A', 'O') /* xlate
object */
#define TAG_BITMAPOBJ TAG('B', 'M', 'P', 'O') /* bitmap
object */
Modified: trunk/reactos/subsystems/win32/win32k/objects/pen.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/pen.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/pen.c [iso-8859-1] Wed Jun 4 11:15:24
2008
@@ -301,7 +301,7 @@
if (dwStyleCount > 0)
{
- pSafeStyle = ExAllocatePoolWithTag(NonPagedPool, dwStyleCount * sizeof(DWORD),
TAG_EXTPEN);
+ pSafeStyle = ExAllocatePoolWithTag(NonPagedPool, dwStyleCount * sizeof(DWORD),
TAG_PENSTYLES);
if (!pSafeStyle)
{
SetLastNtError(ERROR_NOT_ENOUGH_MEMORY);
@@ -338,7 +338,12 @@
cjDIB,
bOldStylePen,
hBrush);
-// BRUSH_Cleanup takes care of pSafeStyle
+
+ if (!hPen && pSafeStyle)
+ {
+ ExFreePool(pSafeStyle);
+ }
+// BRUSH_Cleanup takes care of pSafeStyle when deleteing the pen
return hPen;
}