Author: jimtabor Date: Thu Dec 13 23:27:28 2007 New Revision: 31204
URL: http://svn.reactos.org/svn/reactos?rev=31204&view=rev Log: Up the handle count to 0x10000, reset adjustment to support change. Add device capabilities to handle table.
Modified: trunk/reactos/include/reactos/win32k/ntgdihdl.h trunk/reactos/subsystems/win32/win32k/include/gdiobj.h trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c
Modified: trunk/reactos/include/reactos/win32k/ntgdihdl.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntgd... ============================================================================== --- trunk/reactos/include/reactos/win32k/ntgdihdl.h (original) +++ trunk/reactos/include/reactos/win32k/ntgdihdl.h Thu Dec 13 23:27:28 2007 @@ -18,8 +18,8 @@ /* Base address where the handle table is mapped to */ #define GDI_HANDLE_TABLE_BASE_ADDRESS (0x400000)
-/* GDI handle table can hold 0x4000 handles */ -#define GDI_HANDLE_COUNT 0x4000 +/* GDI handle table can hold 0x10000 handles */ +#define GDI_HANDLE_COUNT 0x10000 #define GDI_GLOBAL_PROCESS (0x0)
/* Handle Masks and shifts */
Modified: trunk/reactos/subsystems/win32/win32k/include/gdiobj.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/gdiobj.h (original) +++ trunk/reactos/subsystems/win32/win32k/include/gdiobj.h Thu Dec 13 23:27:28 2007 @@ -11,10 +11,14 @@
typedef struct _GDI_HANDLE_TABLE { - /* the table must be located at the beginning of this structure so it can be - properly mapped! */ +/* The table must be located at the beginning of this structure so it can be + * properly mapped! + */ +////////////////////////////////////////////////////////////////////////////// GDI_TABLE_ENTRY Entries[GDI_HANDLE_COUNT]; - + DEVCAPS DevCaps; // Device Capabilities + // Font data +////////////////////////////////////////////////////////////////////////////// PPAGED_LOOKASIDE_LIST LookasideLists;
SLIST_HEADER FreeEntriesHead;
Modified: trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c (original) +++ trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c Thu Dec 13 23:27:28 2007 @@ -238,7 +238,7 @@ DPRINT1("reporting gdi handle abusers:\n");
/* step through GDI handle table and find out who our culprit is... */ - for ( i = RESERVE_ENTRIES_COUNT; i < GDI_HANDLE_COUNT; i++ ) + for ( i = RESERVE_ENTRIES_COUNT; i < GDI_HANDLE_COUNT-1; i++ ) { for ( j = 0; j < n; j++ ) { @@ -787,7 +787,7 @@ HandleUpper = GDI_HANDLE_GET_UPPER(hObj);
/* Check that the handle index is valid. */ - if (HandleIndex >= GDI_HANDLE_COUNT) + if (HandleIndex >= GDI_HANDLE_COUNT-1) return NULL;
Entry = &HandleTable->Entries[HandleIndex]; @@ -935,7 +935,7 @@ HandleUpper = GDI_HANDLE_GET_UPPER(hObj);
/* Check that the handle index is valid. */ - if (HandleIndex >= GDI_HANDLE_COUNT) + if (HandleIndex >= GDI_HANDLE_COUNT-1) return NULL;
/* Check if we have the requested type */