Skip to content
  • Ted Kremenek's avatar
    This commit reflects changes to the retain/release checker motivated by my · 1d92d2c8
    Ted Kremenek authored
    recent discussions with Thomas Clement and Ken Ferry concerning the "fundamental
    rule" for Cocoa memory management
    (http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html).
    
    Here is the revised behavior of the checker concerning tracking retain/release
    counts for objects returned from message expressions involving instance methods:
    
    1) Track the returned object if the return type of the message expression is
    id<..>, id, or a pointer to *any* object that subclasses NSObject. Such objects
    are assumed to have a retain count. Previously the checker only tracked objects
    when the receiver of the message expression was part of the standard Cocoa API
    (i.e., had class names prefixed with 'NS'). This should significantly expand the
    amount of checking performed.
    
    2) Consider the object owned if the selector of the message expression contains
    "alloc", "new", or "copy". Previously we also considered "create", but this
    doesn't follow from the fundamental rule (discussions with the Cocoa folks
    confirms this).
    
    llvm-svn: 61837
    1d92d2c8
Loading