Index: ios/chrome/browser/ui/util/label_observer.mm |
diff --git a/ios/chrome/browser/ui/util/label_observer.mm b/ios/chrome/browser/ui/util/label_observer.mm |
index 06510b0f9b969c11ffdb23518c9e063bad2d6b0f..4b9e131a19c00915deecbc2958c6a7ae49946750 100644 |
--- a/ios/chrome/browser/ui/util/label_observer.mm |
+++ b/ios/chrome/browser/ui/util/label_observer.mm |
@@ -6,11 +6,12 @@ |
#import <objc/runtime.h> |
-#import "base/ios/weak_nsobject.h" |
-#import "base/mac/scoped_block.h" |
-#import "base/mac/scoped_nsobject.h" |
#include "base/strings/sys_string_conversions.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
// The key under which LabelObservers are associated with their labels. |
const void* const kLabelObserverKey = &kLabelObserverKey; |
@@ -26,11 +27,11 @@ NSString* GetStringValue(id value) { |
@interface LabelObserver () { |
// The label being observed. |
- base::WeakNSObject<UILabel> _label; |
+ __weak UILabel* _label; |
// Arrays used to store registered actions. |
- base::scoped_nsobject<NSMutableArray> _styleActions; |
- base::scoped_nsobject<NSMutableArray> _layoutActions; |
- base::scoped_nsobject<NSMutableArray> _textActions; |
+ NSMutableArray* _styleActions; |
+ NSMutableArray* _layoutActions; |
+ NSMutableArray* _textActions; |
} |
// Whether or not observer actions are currently being executed. This is used |
@@ -89,7 +90,7 @@ static NSSet* textKeys; |
- (instancetype)initWithLabel:(UILabel*)label { |
if ((self = [super init])) { |
DCHECK(label); |
- _label.reset(label); |
+ _label = label; |
[self resetLabelAttributes]; |
} |
return self; |
@@ -98,7 +99,6 @@ static NSSet* textKeys; |
- (void)dealloc { |
objc_setAssociatedObject(_label, kLabelObserverKey, nil, |
OBJC_ASSOCIATION_ASSIGN); |
- [super dealloc]; |
} |
#pragma mark - Public interface |
@@ -111,7 +111,6 @@ static NSSet* textKeys; |
observer = [[LabelObserver alloc] initWithLabel:label]; |
objc_setAssociatedObject(label, kLabelObserverKey, observer, |
OBJC_ASSOCIATION_ASSIGN); |
- [observer autorelease]; |
} |
return observer; |
} |
@@ -136,24 +135,24 @@ static NSSet* textKeys; |
- (void)addStyleChangedAction:(LabelObserverAction)action { |
DCHECK(action); |
if (!_styleActions) |
- _styleActions.reset([[NSMutableArray alloc] init]); |
- base::mac::ScopedBlock<LabelObserverAction> actionCopy([action copy]); |
+ _styleActions = [[NSMutableArray alloc] init]; |
+ LabelObserverAction actionCopy = [action copy]; |
[_styleActions addObject:actionCopy]; |
} |
- (void)addLayoutChangedAction:(LabelObserverAction)action { |
DCHECK(action); |
if (!_layoutActions) |
- _layoutActions.reset([[NSMutableArray alloc] init]); |
- base::mac::ScopedBlock<LabelObserverAction> actionCopy([action copy]); |
+ _layoutActions = [[NSMutableArray alloc] init]; |
+ LabelObserverAction actionCopy = [action copy]; |
[_layoutActions addObject:actionCopy]; |
} |
- (void)addTextChangedAction:(LabelObserverAction)action { |
DCHECK(action); |
if (!_textActions) |
- _textActions.reset([[NSMutableArray alloc] init]); |
- base::mac::ScopedBlock<LabelObserverAction> actionCopy([action copy]); |
+ _textActions = [[NSMutableArray alloc] init]; |
+ LabelObserverAction actionCopy = [action copy]; |
[_textActions addObject:actionCopy]; |
} |
@@ -190,8 +189,8 @@ static NSSet* textKeys; |
[NSMutableDictionary dictionaryWithCapacity:styleKeys.count]; |
for (NSString* property in styleKeys) |
labelStyle[property] = [_label valueForKey:property]; |
- base::scoped_nsobject<NSAttributedString> attributedText( |
- [[NSAttributedString alloc] initWithString:[_label text]]); |
+ NSAttributedString* attributedText = |
+ [[NSAttributedString alloc] initWithString:[_label text]]; |
[_label setAttributedText:attributedText]; |
for (NSString* property in styleKeys) |
[_label setValue:labelStyle[property] forKey:property]; |
@@ -204,7 +203,7 @@ static NSSet* textKeys; |
if (self.respondingToKVO) |
return; |
self.respondingToKVO = YES; |
- DCHECK_EQ(object, _label.get()); |
+ DCHECK_EQ(object, _label); |
if ([styleKeys containsObject:key]) { |
[self performActions:_styleActions]; |
} else if ([layoutKeys containsObject:key]) { |