forked from Pissandshittium/pissandshittium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move scoped_nsautorelease_pool to base/apple, leave a forwarding header
Crashpad is not yet updated for the new location, so leave a forwarding header to be removed later. Bug: 1444927 Change-Id: I143ff8d594afde9c9f5079c477f38d87337e2092 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4784010 Commit-Queue: Avi Drissman <avi@chromium.org> Owners-Override: Avi Drissman <avi@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> Cr-Commit-Position: refs/heads/main@{#1184446}
- Loading branch information
Avi Drissman
authored and
Chromium LUCI CQ
committed
Aug 16, 2023
1 parent
7b8024a
commit 5289ab2
Showing
54 changed files
with
163 additions
and
144 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// Copyright 2011 The Chromium Authors | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#ifndef BASE_APPLE_SCOPED_NSAUTORELEASE_POOL_H_ | ||
#define BASE_APPLE_SCOPED_NSAUTORELEASE_POOL_H_ | ||
|
||
#include "base/base_export.h" | ||
#include "base/memory/raw_ptr_exclusion.h" | ||
#include "base/threading/thread_checker.h" | ||
|
||
namespace base::apple { | ||
|
||
// ScopedNSAutoreleasePool creates an autorelease pool when instantiated and | ||
// pops it when destroyed. This allows an autorelease pool to be maintained in | ||
// ordinary C++ code without bringing in any direct Objective-C dependency. | ||
// | ||
// Before using, please be aware that the semantics of autorelease pools do not | ||
// match the semantics of a C++ class. In particular, recycling or destructing a | ||
// pool lower on the stack destroys all pools higher on the stack, which does | ||
// not mesh well with the existence of C++ objects for each pool. | ||
// | ||
// TODO(https://crbug.com/1424190): Enforce stack-only use via the | ||
// STACK_ALLOCATED annotation. | ||
// | ||
// Use this class only in C++ code; use @autoreleasepool in Obj-C(++) code. | ||
|
||
class BASE_EXPORT ScopedNSAutoreleasePool { | ||
public: | ||
ScopedNSAutoreleasePool(); | ||
|
||
ScopedNSAutoreleasePool(const ScopedNSAutoreleasePool&) = delete; | ||
ScopedNSAutoreleasePool& operator=(const ScopedNSAutoreleasePool&) = delete; | ||
ScopedNSAutoreleasePool(ScopedNSAutoreleasePool&&) = delete; | ||
ScopedNSAutoreleasePool& operator=(ScopedNSAutoreleasePool&&) = delete; | ||
|
||
~ScopedNSAutoreleasePool(); | ||
|
||
// Clear out the pool in case its position on the stack causes it to be alive | ||
// for long periods of time (such as the entire length of the app). Only use | ||
// then when you're certain the items currently in the pool are no longer | ||
// needed. | ||
void Recycle(); | ||
|
||
private: | ||
// This field is not a raw_ptr<> because it is a pointer to an Objective-C | ||
// object. | ||
RAW_PTR_EXCLUSION void* autorelease_pool_ GUARDED_BY_CONTEXT(thread_checker_); | ||
|
||
THREAD_CHECKER(thread_checker_); | ||
}; | ||
|
||
} // namespace base::apple | ||
|
||
#endif // BASE_APPLE_SCOPED_NSAUTORELEASE_POOL_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.