Author: jimtabor
Date: Thu Dec 20 05:36:38 2007
New Revision: 31349
URL:
http://svn.reactos.org/svn/reactos?rev=31349&view=rev
Log:
Add a test to see which is the naughty handle type abusing the system. Free = 0 Window =
225 Menu = 116 CursorIcon = 1695 Hook = 2 CallProc = 6 Accel = 3 Monitor = 1
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/object.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/object.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/object.c (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/object.c Thu Dec 20 05:36:38 2007
@@ -68,7 +68,47 @@
if (ht->nb_handles >= ht->allocated_handles) /* need to grow the array */
{
- DPRINT1("Out of user handles!\n");
+/**/
+ int i, iFree = 0, iWindow = 0, iMenu = 0, iCursorIcon = 0,
+ iHook = 0, iCallProc = 0, iAccel = 0, iMonitor = 0;
+ /**/
+ DPRINT1("Out of user handles! Used -> %i, NM_Handle -> %d\n",
usedHandles, ht->nb_handles);
+//#if 0
+ for(i = 0; i < ht->nb_handles; i++)
+ {
+ switch (ht->handles[i].type)
+ {
+ case otFree: // Should be zero.
+ iFree++;
+ break;
+ case otWindow:
+ iWindow++;
+ break;
+ case otMenu:
+ iMenu++;
+ break;
+ case otCursorIcon:
+ iCursorIcon++;
+ break;
+ case otHook:
+ iHook++;
+ break;
+ case otCallProc:
+ iCallProc++;
+ break;
+ case otAccel:
+ iAccel++;
+ break;
+ case otMonitor:
+ iMonitor++;
+ break;
+ default:
+ break;
+ }
+ }
+ DPRINT1("Handle Count by Type:\n Free = %d Window = %d Menu = %d CursorIcon =
%d Hook = %d\n CallProc = %d Accel = %d Monitor = %d\n",
+ iFree, iWindow, iMenu, iCursorIcon, iHook, iCallProc, iAccel, iMonitor );
+//#endif
return NULL;
#if 0
PUSER_HANDLE_ENTRY new_handles;