Bug Tracker

Changeset 4292

Show
Ignore:
Timestamp:
12/21/07 04:53:33 (9 months ago)
Author:
brandon.aaron
Message:

Fixed memory leak in IE with non-native event types

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/event.js

    r4290 r4292  
    5050                    return val; 
    5151         
    52                 val = jQuery.event.handle.apply(elem, arguments); 
     52                val = jQuery.event.handle.apply(arguments.callee.elem, arguments); 
    5353         
    5454                return val; 
    5555            }); 
     56        // Add elem as a property of the handle function 
     57        // This is to prevent a memory leak with non-native 
     58        // event in IE. 
     59        handle.elem = elem; 
    5660             
    5761            // Handle multiple events seperated by a space 
     
    8892                jQuery.event.global[type] = true; 
    8993            }); 
     94         
     95        // Nullify elem to prevent memory leaks in IE 
     96        elem = null; 
    9097    }, 
    9198 
     
    151158            for ( ret in events ) break; 
    152159            if ( !ret ) { 
     160                var handle = jQuery.data( elem, "handle" ); 
     161                if ( handle ) handle.elem = null; 
    153162                jQuery.removeData( elem, "events" ); 
    154163                jQuery.removeData( elem, "handle" );