From ac805304953069173c75eaafcddf7546f63b0619 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Fri, 23 Sep 2011 02:03:10 +0000 Subject: [PATCH] Use nothrow and add InitCheck method to check if allocation went fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42765 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/shared/WeakReferenceable.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/headers/private/shared/WeakReferenceable.h b/headers/private/shared/WeakReferenceable.h index df49fd9152..22d4181885 100644 --- a/headers/private/shared/WeakReferenceable.h +++ b/headers/private/shared/WeakReferenceable.h @@ -8,6 +8,8 @@ #include +#include + namespace BPrivate { @@ -38,6 +40,8 @@ public: BWeakReferenceable(); virtual ~BWeakReferenceable(); + status_t InitCheck(); + void AcquireReference() { fPointer->GetUnchecked(); } @@ -243,7 +247,7 @@ WeakPointer::GetUnchecked() inline BWeakReferenceable::BWeakReferenceable() : - fPointer(new WeakPointer(this)) + fPointer(new(std::nothrow) WeakPointer(this)) { } @@ -255,6 +259,15 @@ BWeakReferenceable::~BWeakReferenceable() } +inline status_t +BWeakReferenceable::InitCheck() +{ + if (fPointer == NULL) + return B_NO_MEMORY; + return B_OK; +} + + inline WeakPointer* BWeakReferenceable::GetWeakPointer() {