diff --git a/atom/browser/browser_mac.mm b/atom/browser/browser_mac.mm index 069579354bd4..42d10debd094 100644 --- a/atom/browser/browser_mac.mm +++ b/atom/browser/browser_mac.mm @@ -91,16 +91,16 @@ void Browser::SetUserActivity(const std::string& type, const std::map user_info_args([[NSMutableDictionary alloc] init]); for (auto const &pair : user_info) { NSString* value_ns = [NSString stringWithUTF8String:pair.second.c_str()]; NSString* key_ns = [NSString stringWithUTF8String:pair.first.c_str()]; - [user_info_args setObject:value_ns - forKey:key_ns]; + [user_info_args.get() setObject:value_ns + forKey:key_ns]; } - user_activity.userInfo = user_info_args; + user_activity.userInfo = user_info_args.get(); [user_activity becomeCurrent]; [[AtomApplication sharedApplication] setCurrentActivity:user_activity]; diff --git a/atom/browser/mac/atom_application.h b/atom/browser/mac/atom_application.h index e31a9926eb39..37074cae7bfb 100644 --- a/atom/browser/mac/atom_application.h +++ b/atom/browser/mac/atom_application.h @@ -3,12 +3,13 @@ // found in the LICENSE file. #import "base/mac/scoped_sending_event.h" +#import "base/mac/scoped_nsobject.h" @interface AtomApplication : NSApplication { @private BOOL handlingSendEvent_; - NSUserActivity* currentActivity_; + base::scoped_nsobject currentActivity_; } + (AtomApplication*)sharedApplication; diff --git a/atom/browser/mac/atom_application.mm b/atom/browser/mac/atom_application.mm index 3fe6658e4cf9..181151130474 100644 --- a/atom/browser/mac/atom_application.mm +++ b/atom/browser/mac/atom_application.mm @@ -29,11 +29,11 @@ } - (void)setCurrentActivity:(NSUserActivity*)userActivity { - currentActivity_ = userActivity; + currentActivity_ = base::scoped_nsobject(userActivity); } - (NSUserActivity*)getCurrentActivity { - return currentActivity_; + return currentActivity_.get(); } - (void)awakeFromNib { diff --git a/atom/browser/mac/atom_application_delegate.mm b/atom/browser/mac/atom_application_delegate.mm index 2309a7591a1d..0904679c49a6 100644 --- a/atom/browser/mac/atom_application_delegate.mm +++ b/atom/browser/mac/atom_application_delegate.mm @@ -65,9 +65,9 @@ continueUserActivity:(NSUserActivity *)userActivity std::string activity_type(base::SysNSStringToUTF8(userActivity.activityType)); std::map user_info; + base::scoped_nsobject keys([userActivity.userInfo allKeys]); - NSArray* keys = [userActivity.userInfo allKeys]; - for (NSString* key in keys) { + for (NSString* key in keys.get()) { NSString* value = [userActivity.userInfo objectForKey:key]; std::string key_str(base::SysNSStringToUTF8(key)); std::string value_str(base::SysNSStringToUTF8(value));