From b232c33052d4d734d6279b55f43e2b113e84fb25 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 6 Sep 2007 13:14:21 +0000 Subject: [PATCH] - add the missing macro What the last change does and I missed last commit: - use individual pool tags for each gdi object type - allow object allocation w/o lookaside list - don't search for the lookaside list/cleanup proc, the index into the lists is now calculated from type svn path=/trunk/; revision=28900 --- reactos/include/reactos/win32k/ntgdihdl.h | 4 ++++ reactos/subsystems/win32/win32k/objects/gdiobj.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/reactos/include/reactos/win32k/ntgdihdl.h b/reactos/include/reactos/win32k/ntgdihdl.h index 1a0406fd660..87aebc84b6c 100644 --- a/reactos/include/reactos/win32k/ntgdihdl.h +++ b/reactos/include/reactos/win32k/ntgdihdl.h @@ -28,6 +28,7 @@ #define GDI_HANDLE_REUSE_MASK 0xff000000 #define GDI_HANDLE_UPPER_MASK (GDI_HANDLE_TYPE_MASK|GDI_HANDLE_STOCK_MASK|GDI_HANDLE_REUSE_MASK) #define GDI_HANDLE_REUSECNT_SHIFT 24 +#define GDI_HANDLE_BASETYPE_SHIFT 16 #define GDI_ENTRY_STOCK_MASK 0x00000080 #define GDI_ENTRY_REUSE_MASK 0x0000ff00 @@ -117,6 +118,9 @@ #define GDI_ENTRY_GET_REUSECNT(e) \ ((((ULONG_PTR)(e)) & GDI_ENTRY_REUSE_MASK) >> GDI_ENTRY_REUSECNT_SHIFT) +#define GDI_OBJECT_GET_TYPE_INDEX(t) \ + ((t & GDI_HANDLE_BASETYPE_MASK) >> GDI_HANDLE_BASETYPE_SHIFT) + /* DC OBJ Types */ #define DC_TYPE_DIRECT 0 // normal device context #define DC_TYPE_MEMORY 1 // memory device context diff --git a/reactos/subsystems/win32/win32k/objects/gdiobj.c b/reactos/subsystems/win32/win32k/objects/gdiobj.c index f8032ad83b7..bde3402a2a7 100644 --- a/reactos/subsystems/win32/win32k/objects/gdiobj.c +++ b/reactos/subsystems/win32/win32k/objects/gdiobj.c @@ -364,7 +364,7 @@ GDIOBJ_AllocObj(PGDI_HANDLE_TABLE HandleTable, ULONG ObjectType) ASSERT(ObjectType != GDI_OBJECT_TYPE_DONTCARE); - TypeIndex = 0; //GDI_OBJECT_GET_TYPE_INDEX(ObjectType); + TypeIndex = GDI_OBJECT_GET_TYPE_INDEX(ObjectType); if (ObjTypeInfo[TypeIndex].bUseLookaside) { LookasideList = FindLookasideList(HandleTable, TypeIndex); @@ -583,7 +583,7 @@ LockHandle: } /* call the cleanup routine. */ - TypeIndex = 0; //GDI_OBJECT_GET_TYPE_INDEX(HandleType); + TypeIndex = GDI_OBJECT_GET_TYPE_INDEX(HandleType); Ret = RunCleanupCallback(GDIHdrToBdy(GdiHdr), TypeIndex); /* Now it's time to free the memory */