Skip to content

Commit

Permalink
Bug 1766768 - Fix move constructor of OwningNonNull(RefPtr<>&&) to ac…
Browse files Browse the repository at this point in the history
…tually move. r=mccr8

Differential Revision: https://phabricator.services.mozilla.com/D144987
  • Loading branch information
emilio committed Apr 29, 2022
1 parent 6a8d7ff commit dcdf863
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion xpcom/base/OwningNonNull.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ class MOZ_IS_SMARTPTR_TO_REFCOUNTED OwningNonNull {
protected:
template <typename U>
void init(U&& aValue) {
mPtr = aValue;
mPtr = std::move(aValue);
MOZ_ASSERT(mPtr);
#ifdef DEBUG
mInited = true;
Expand Down
27 changes: 27 additions & 0 deletions xpcom/tests/gtest/TestOwningNonNull.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "mozilla/OwningNonNull.h"
#include "mozilla/RefCounted.h"
#include "mozilla/RefPtr.h"
#include "gtest/gtest.h"

using namespace mozilla;

struct OwnedRefCounted : public RefCounted<OwnedRefCounted> {
MOZ_DECLARE_REFCOUNTED_TYPENAME(OwnedRefCounted)

OwnedRefCounted() = default;

private:
~OwnedRefCounted() = default;
};

TEST(OwningNonNull, Move)
{
auto refptr = MakeRefPtr<OwnedRefCounted>();
OwningNonNull<OwnedRefCounted> owning(std::move(refptr));
EXPECT_FALSE(!!refptr);
}
1 change: 1 addition & 0 deletions xpcom/tests/gtest/moz.build
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ UNIFIED_SOURCES += [
"TestNSPRLogModulesParser.cpp",
"TestObserverArray.cpp",
"TestObserverService.cpp",
"TestOwningNonNull.cpp",
"TestPLDHash.cpp",
"TestPriorityQueue.cpp",
"TestQueue.cpp",
Expand Down

0 comments on commit dcdf863

Please sign in to comment.