blob: c8d17e9a122412c7c0c0adb6fc6ee06e3f4ded62 [file] [log] [blame]
// Copyright 2018 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.
#import "ui/base/cocoa/weak_ptr_nsobject.h"
#import <Foundation/Foundation.h>
@interface WeakPtrNSObject : NSObject {
@public
void* weak_ptr;
}
@end
@implementation WeakPtrNSObject
@end
namespace ui {
namespace internal {
WeakPtrNSObject* WeakPtrNSObjectFactoryBase::Create(void* owner) {
WeakPtrNSObject* object = [[WeakPtrNSObject alloc] init];
object->weak_ptr = owner;
return object;
}
void* WeakPtrNSObjectFactoryBase::UnWrap(WeakPtrNSObject* handle) {
return handle->weak_ptr;
}
void WeakPtrNSObjectFactoryBase::InvalidateAndRelease(WeakPtrNSObject* handle) {
handle->weak_ptr = nullptr;
[handle release];
}
} // namespace internal
} // namespace ui