+[NSEvent addGlobalMonitorForEventsMatchingMask:handler:] leaks

Originator:SelfTransformingElfMachine
Number:rdar://10608218 Date Originated:20-Dec-2011 10:53 AM
Status:Closed Resolved:10.7.3 (build 11D50)
Product:Mac OS X Product Version:10.7.2
Classification:Performance Reproducible:Always
 
20-Dec-2011 10:53 AM Kevin Ross:
'addGlobalMonitorForEventsMatchingMask Bug.zip' was successfully uploaded

20-Dec-2011 10:53 AM Kevin Ross:
Summary:
+[NSEvent addGlobalMonitorForEventsMatchingMask:handler:] leaks events when profiling using Instruments.


Steps to Reproduce:
1. Create test project… 
2. Add global event monitor.
3. Profile using instruments "Leaks".
4. Click around and wait for Instruments to report leaks.

Expected Results:
No memory leaks.

Actual Results:
Multiple instances of NSEvent are leaked at 160 bytes per leak.

//---------------------------------------------------------------------------------//
// Leaks Details
Responsible Library: AppKit
Responsible Frame: +[NSEvent _eventWithEventRefInternal:]

Stack Trace:
   0 libsystem_c.dylib calloc
   1 libobjc.A.dylib class_createInstance
   2 CoreFoundation +[NSObject allocWithZone:]
   3 AppKit +[NSEvent _eventWithEventRefInternal:]
   4 AppKit GlobalObserverHandler
   5 HIToolbox _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec
   6 HIToolbox _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec
   7 HIToolbox SendEventToEventTargetWithOptions
   8 HIToolbox HIObject::HandleEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*)
   9 HIToolbox HIObject::EventHook(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)
  10 HIToolbox _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec
  11 HIToolbox _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec
  12 HIToolbox SendEventToEventTargetWithOptions
  13 HIToolbox _ZL29ToolboxEventDispatcherHandlerP25OpaqueEventHandlerCallRefP14OpaqueEventRefPv
  14 HIToolbox _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec
  15 HIToolbox _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec
  16 HIToolbox SendEventToEventTarget
  17 AppKit _DPSNextEvent
  18 AppKit -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
  19 AppKit -[NSApplication run]
  20 AppKit NSApplicationMain
  21 EventMonitorTest start
//---------------------------------------------------------------------------------//



Regression:
It looks like the bug is fixed in the latest 10.7.3 seed.
Does not appear to affect systems < 10.7

Notes:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!