blob: 174fb821d67e4db8c2142b97629f73f39506e00e [file] [log] [blame]
mark@chromium.org3b2ec6f2008-09-26 05:33:42 +09001// Copyright (c) 2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/scoped_nsautorelease_pool.h"
6
7#import <Foundation/Foundation.h>
8
pinkerton@chromium.org36564602009-02-10 00:35:47 +09009#include "base/logging.h"
10
mark@chromium.org3b2ec6f2008-09-26 05:33:42 +090011namespace base {
12
13ScopedNSAutoreleasePool::ScopedNSAutoreleasePool()
14 : autorelease_pool_([[NSAutoreleasePool alloc] init]) {
pinkerton@chromium.org36564602009-02-10 00:35:47 +090015 DCHECK(autorelease_pool_);
mark@chromium.org3b2ec6f2008-09-26 05:33:42 +090016}
17
18ScopedNSAutoreleasePool::~ScopedNSAutoreleasePool() {
19 [autorelease_pool_ drain];
20}
21
pinkerton@chromium.org36564602009-02-10 00:35:47 +090022// Cycle the internal pool, allowing everything there to get cleaned up and
23// start anew.
24void ScopedNSAutoreleasePool::Recycle() {
25 [autorelease_pool_ drain];
26 autorelease_pool_ = [[NSAutoreleasePool alloc] init];
27 DCHECK(autorelease_pool_);
28}
29
mark@chromium.org3b2ec6f2008-09-26 05:33:42 +090030} // namespace base