summaryrefslogtreecommitdiff
path: root/core/fxcrt/unowned_ptr.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-04-09 17:45:54 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-09 17:45:54 +0000
commit269963f90fa882869c3a33c8c9ecba41351cb27d (patch)
treeb2e73bb87dc8b1b4fe51658495e0faafb086975a /core/fxcrt/unowned_ptr.h
parent1ee9601b01259b3e1b1a5b43801264ec6f5090c1 (diff)
downloadpdfium-269963f90fa882869c3a33c8c9ecba41351cb27d.tar.xz
Make pdfium::span<> be based off of UnownedPtr<>.
Because we can get the lifetime check for free if we do this. This requires adding some "constexpr/noexcept" to UnownedPtr to make the types line up with what span.h requires. Change-Id: I45918f8723122082036eed959f769644ab4c509f Reviewed-on: https://pdfium-review.googlesource.com/29672 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/unowned_ptr.h')
-rw-r--r--core/fxcrt/unowned_ptr.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/core/fxcrt/unowned_ptr.h b/core/fxcrt/unowned_ptr.h
index b1c9c66b3e..0e3bf9e09b 100644
--- a/core/fxcrt/unowned_ptr.h
+++ b/core/fxcrt/unowned_ptr.h
@@ -40,25 +40,25 @@ namespace fxcrt {
template <class T>
class UnownedPtr {
public:
- UnownedPtr() = default;
- UnownedPtr(const UnownedPtr& that) : UnownedPtr(that.Get()) {}
+ constexpr UnownedPtr() noexcept = default;
+ constexpr UnownedPtr(const UnownedPtr& that) noexcept = default;
template <typename U>
- explicit UnownedPtr(U* pObj) : m_pObj(pObj) {}
+ explicit constexpr UnownedPtr(U* pObj) noexcept : m_pObj(pObj) {}
// Deliberately implicit to allow returning nullptrs.
// NOLINTNEXTLINE(runtime/explicit)
- UnownedPtr(std::nullptr_t ptr) {}
+ constexpr UnownedPtr(std::nullptr_t ptr) noexcept {}
~UnownedPtr() { ProbeForLowSeverityLifetimeIssue(); }
- UnownedPtr& operator=(T* that) {
+ UnownedPtr& operator=(T* that) noexcept {
ProbeForLowSeverityLifetimeIssue();
m_pObj = that;
return *this;
}
- UnownedPtr& operator=(const UnownedPtr& that) {
+ UnownedPtr& operator=(const UnownedPtr& that) noexcept {
ProbeForLowSeverityLifetimeIssue();
if (*this != that)
m_pObj = that.Get();
@@ -81,7 +81,7 @@ class UnownedPtr {
return !(*this == that);
}
- T* Get() const { return m_pObj; }
+ T* Get() const noexcept { return m_pObj; }
T* Release() {
ProbeForLowSeverityLifetimeIssue();