Hi, Here is a list of files that use ntuser/object.c
As you all see, we Dereference more than we Reference! Reference is 0 so we are using Dereference as a delete? This is a mess! Not once is a Thread referenced!
Thanks, James
./callproc.c:52: ObmDeleteObject(Handle, ./hook.c:209: ObmDeleteObject(Hook->Self, otHook); ./cursoricon.c:413: ObmDeleteObject(hCurIcon, otCursorIcon); ./cursoricon.c:487: Ret = ObmDeleteObject(CurIcon->Self, otCursorIcon); ./menu.c:320: ObmDeleteObject(Menu->MenuInfo.Self, otMenu); ./window.c:433: ObmDeleteObject(Window->hSelf, otWindow); ./accelerator.c:365: ObmDeleteObject(hAccel, otAccel); ./accelerator.c:374: ObmDeleteObject(hAccel, otAccel); ./accelerator.c:414: ObmDeleteObject(hAccel, otAccel);
./callproc.c:64: NewCallProc = (PCALLPROC)ObmCreateObject(gHandleTable, ./callproc.c:88: NewCallProc = (PCALLPROC)ObmCreateObject(gHandleTable, ./hook.c:113: Hook = ObmCreateObject(gHandleTable, &Handle, otHook, sizeof(HOOK)); ./monitor.c:92: Monitor = ObmCreateObject(gHandleTable, &Handle, otMonitor, sizeof (MONITOR_OBJECT)); ./cursoricon.c:399: CurIcon = ObmCreateObject(gHandleTable, &hCurIcon, otCursorIcon, sizeof(CURICON_OBJECT)); ./menu.c:333: Menu = (PMENU_OBJECT)ObmCreateObject( ./menu.c:442: Menu = (PMENU_OBJECT)ObmCreateObject( ./window.c:1537: ObmCreateObject(gHandleTable, (PHANDLE)&hWnd, ./accelerator.c:351: Accel = ObmCreateObject(gHandleTable, (PHANDLE)&hAccel, otAccel, sizeof(ACCELERATOR_TABLE));
./input.c:1045: ObmDereferenceObject(DesktopWindow); ./msgqueue.c:776: ObmDereferenceObject(Window); ./hook.c:449: ObmDereferenceObject(HookObj); ./hook.c:455: ObmDereferenceObject(HookObj); ./hook.c:624: ObmDereferenceObject(Hook); ./hook.c:639: ObmDereferenceObject(Hook); ./hook.c:656: ObmDereferenceObject(Hook); ./hook.c:673: ObmDereferenceObject(Hook); ./hook.c:738: ObmDereferenceObject(HookObj); ./monitor.c:119: ObmDereferenceObject(pMonitor); ./cursoricon.c:375:// ObmDereferenceObject(CurIcon); ./cursoricon.c:386:// ObmDereferenceObject(CurIcon); ./cursoricon.c:414: ObmDereferenceObject(CurIcon); ./cursoricon.c:420: ObmDereferenceObject(CurIcon); ./cursoricon.c:532:// ObmDereferenceObject(Object);
./cursoricon.c:369:// ObmReferenceObject( CurIcon); ./cursoricon.c:519:// ObmReferenceObject(CurIcon);