An object that associated to `NSTaggedPointerString` by `objc_setAssociatedObject()` is not released on OS X 10.11.2 (15C50)
| Originator: | Norio.Nomura | ||
| Number: | rdar://23914382 | Date Originated: | 16-Dec-2015 01:14 PM |
| Status: | Open | Resolved: | |
| Product: | OS X SDK | Product Version: | 10.11.2 (15C50) |
| Classification: | Other | Reproducible: | Always |
Summary:
An object that associated to `NSTaggedPointerString` by `objc_setAssociatedObject()` is not released on OS X 10.11.2 (15C50)
Steps to Reproduce:
1. Create OS X Playground on Xcode
2. Paste following code to Playground:
```
import Foundation
let assockey = ""
do {
class Canary {
deinit {
print("deinit")
}
}
let longerNSString = NSString(format: "longerNSString %d", 1)
print(longerNSString.dynamicType) // "_NSCFString\n"
objc_setAssociatedObject(longerNSString, assockey, Canary(), .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
do {
class Canary {
deinit {
print("deinit")
}
}
let shorterNSString = NSString(format: "%d", 1)
print(shorterNSString.dynamicType) // "NSTaggedPointerString\n"
objc_setAssociatedObject(shorterNSString, assockey, Canary(), .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
```
Expected Results:
3. following will be displayed on console:
```
__NSCFString
deinit
NSTaggedPointerString
deist
```
Actual Results:
3. following was displayed on console:
```
__NSCFString
deinit
NSTaggedPointerString
```
Version:
Xcode 7.2 (7C68) & OS X 10.11.2 (15C50)
Notes:
Configuration:
MacBook Pro (Retina, 13-inch, Late 2013) w: OS X OS X 10.11.2 (15C50).spx - configuration file has been successfully uploaded.
Attachments:
'MacBook Pro (Retina, 13-inch, Late 2013) w: OS X OS X 10.11.2 (15C50).spx' was successfully uploaded.
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!
Reply from Apple:
Oops. On "Expected Results:",
deistisdeinit.