Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3196)

Unified Diff: base/ios/weak_nsobject.mm

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/ios/weak_nsobject.h ('k') | base/ios/weak_nsobject_unittest.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/ios/weak_nsobject.mm
diff --git a/base/ios/weak_nsobject.mm b/base/ios/weak_nsobject.mm
deleted file mode 100644
index 36f9d3ea7cdd700da53d77a34245c3bad68a86c1..0000000000000000000000000000000000000000
--- a/base/ios/weak_nsobject.mm
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/ios/weak_nsobject.h"
-
-#include "base/mac/scoped_nsautorelease_pool.h"
-#include "base/mac/scoped_nsobject.h"
-
-namespace {
-// The key needed by objc_setAssociatedObject.
-char sentinelObserverKey_;
-}
-
-@interface CRBWeakNSProtocolSentinel ()
-// Container to notify on dealloc.
-@property(readonly, assign) scoped_refptr<base::WeakContainer> container;
-// Designed initializer.
-- (id)initWithContainer:(scoped_refptr<base::WeakContainer>)container;
-@end
-
-@implementation CRBWeakNSProtocolSentinel
-
-@synthesize container = container_;
-
-+ (scoped_refptr<base::WeakContainer>)containerForObject:(id)object {
- if (object == nil)
- return nullptr;
- // The autoreleasePool is needed here as the call to objc_getAssociatedObject
- // returns an autoreleased object which is better released sooner than later.
- base::mac::ScopedNSAutoreleasePool pool;
- CRBWeakNSProtocolSentinel* sentinel =
- objc_getAssociatedObject(object, &sentinelObserverKey_);
- if (!sentinel) {
- base::scoped_nsobject<CRBWeakNSProtocolSentinel> newSentinel(
- [[CRBWeakNSProtocolSentinel alloc]
- initWithContainer:new base::WeakContainer(object)]);
- sentinel = newSentinel;
- objc_setAssociatedObject(object, &sentinelObserverKey_, sentinel,
- OBJC_ASSOCIATION_RETAIN);
- // The retain count is 2. One retain is due to the alloc, the other to the
- // association with the weak object.
- DCHECK_EQ(2u, [sentinel retainCount]);
- }
- return [sentinel container];
-}
-
-- (id)initWithContainer:(scoped_refptr<base::WeakContainer>)container {
- DCHECK(container.get());
- self = [super init];
- if (self)
- container_ = container;
- return self;
-}
-
-- (void)dealloc {
- self.container->nullify();
- [super dealloc];
-}
-
-@end
« no previous file with comments | « base/ios/weak_nsobject.h ('k') | base/ios/weak_nsobject_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698