mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 07:38:10 +00:00
OwnPtr: Add a way to turn an OwnPtr into a NonnullOwnPtr
Okay, so, OwnPtr<T>::release_nonnull() returns a NonnullOwnPtr<T>. It assumes that the OwnPtr is non-null to begin with. Note that this removes the value from the OwnPtr, as there can only be a single owner.
This commit is contained in:
parent
99ed4ce30c
commit
f75b1127b2
2 changed files with 23 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
#include <AK/TestSuite.h>
|
||||
|
||||
#include <AK/AKString.h>
|
||||
#include <AK/NonnullOwnPtrVector.h>
|
||||
#include <AK/OwnPtr.h>
|
||||
#include <AK/Vector.h>
|
||||
|
||||
|
@ -252,4 +253,20 @@ TEST_CASE(vector_remove)
|
|||
EXPECT_EQ(ints[0], 4);
|
||||
}
|
||||
|
||||
TEST_CASE(nonnullownptrvector)
|
||||
{
|
||||
struct Object {
|
||||
String string;
|
||||
};
|
||||
NonnullOwnPtrVector<Object> objects;
|
||||
|
||||
objects.append(make<Object>());
|
||||
EXPECT_EQ(objects.size(), 1);
|
||||
|
||||
OwnPtr<Object> o = make<Object>();
|
||||
objects.append(o.release_nonnull());
|
||||
EXPECT(o == nullptr);
|
||||
EXPECT_EQ(objects.size(), 2);
|
||||
}
|
||||
|
||||
TEST_MAIN(Vector)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue