Files
swift-mirror/stdlib/public/SDK/Foundation/NotificationThunks.m
Philippe Hausler 2a3787ed08 [Foundation] Fetching userInfo from notifications can cause leaks
<rdar://problem/26882026>
2016-06-20 15:51:28 -07:00

34 lines
1.3 KiB
Objective-C

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#import <Foundation/Foundation.h>
extern NS_RETURNS_RETAINED __nullable id
__NSNotificationCreate(
NSString *NS_RELEASES_ARGUMENT __nonnull name,
id NS_RELEASES_ARGUMENT __nullable object,
NSDictionary *NS_RELEASES_ARGUMENT __nullable userInfo) {
NSNotification *notif = [[NSNotification alloc] initWithName:name object:object userInfo:userInfo];
[name release];
[object release];
[userInfo release];
return notif;
}
extern NS_RETURNS_RETAINED __nullable id
__NSNotificationUserInfo(
NSNotification *NS_RELEASES_ARGUMENT __nonnull notif) {
NSDictionary *userInfo = [notif.userInfo retain]; // avoid the copy here since this is fetching the stored dictionary and copying it might destroy it's type
[notif release];
return userInfo;
}