[llvm] r311368 - [BinaryStream] Defaultify copy and move constructors.
Zachary Turner via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 21 12:46:46 PDT 2017
Author: zturner
Date: Mon Aug 21 12:46:46 2017
New Revision: 311368
URL: http://llvm.org/viewvc/llvm-project?rev=311368&view=rev
Log:
[BinaryStream] Defaultify copy and move constructors.
The various BinaryStream classes had explicit copy constructors
which resulted in deleted move constructors. This was causing
the internal std::shared_ptr to get copied rather than moved
very frequently, since these classes are often used as return
values.
Patch by Alex Telishev
Differential Revision: https://reviews.llvm.org/D36942
Modified:
llvm/trunk/include/llvm/Support/BinaryStreamRef.h
llvm/trunk/lib/Support/BinaryStreamRef.cpp
Modified: llvm/trunk/include/llvm/Support/BinaryStreamRef.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/BinaryStreamRef.h?rev=311368&r1=311367&r2=311368&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/BinaryStreamRef.h (original)
+++ llvm/trunk/include/llvm/Support/BinaryStreamRef.h Mon Aug 21 12:46:46 2017
@@ -31,12 +31,11 @@ protected:
BinaryStreamRefBase(StreamType &BorrowedImpl, uint32_t Offset,
uint32_t Length)
: BorrowedImpl(&BorrowedImpl), ViewOffset(Offset), Length(Length) {}
- BinaryStreamRefBase(const BinaryStreamRefBase &Other) {
- SharedImpl = Other.SharedImpl;
- BorrowedImpl = Other.BorrowedImpl;
- ViewOffset = Other.ViewOffset;
- Length = Other.Length;
- }
+ BinaryStreamRefBase(const BinaryStreamRefBase &Other) = default;
+ BinaryStreamRefBase &operator=(const BinaryStreamRefBase &Other) = default;
+
+ BinaryStreamRefBase &operator=(BinaryStreamRefBase &&Other) = default;
+ BinaryStreamRefBase(BinaryStreamRefBase &&Other) = default;
public:
llvm::support::endianness getEndian() const {
@@ -142,7 +141,10 @@ public:
llvm::support::endianness Endian);
explicit BinaryStreamRef(StringRef Data, llvm::support::endianness Endian);
- BinaryStreamRef(const BinaryStreamRef &Other);
+ BinaryStreamRef(const BinaryStreamRef &Other) = default;
+ BinaryStreamRef &operator=(const BinaryStreamRef &Other) = default;
+ BinaryStreamRef(BinaryStreamRef &&Other) = default;
+ BinaryStreamRef &operator=(BinaryStreamRef &&Other) = default;
// Use BinaryStreamRef.slice() instead.
BinaryStreamRef(BinaryStreamRef &S, uint32_t Offset,
@@ -203,7 +205,12 @@ public:
uint32_t Length);
explicit WritableBinaryStreamRef(MutableArrayRef<uint8_t> Data,
llvm::support::endianness Endian);
- WritableBinaryStreamRef(const WritableBinaryStreamRef &Other);
+ WritableBinaryStreamRef(const WritableBinaryStreamRef &Other) = default;
+ WritableBinaryStreamRef &
+ operator=(const WritableBinaryStreamRef &Other) = default;
+
+ WritableBinaryStreamRef(WritableBinaryStreamRef &&Other) = default;
+ WritableBinaryStreamRef &operator=(WritableBinaryStreamRef &&Other) = default;
// Use WritableBinaryStreamRef.slice() instead.
WritableBinaryStreamRef(WritableBinaryStreamRef &S, uint32_t Offset,
Modified: llvm/trunk/lib/Support/BinaryStreamRef.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/BinaryStreamRef.cpp?rev=311368&r1=311367&r2=311368&view=diff
==============================================================================
--- llvm/trunk/lib/Support/BinaryStreamRef.cpp (original)
+++ llvm/trunk/lib/Support/BinaryStreamRef.cpp Mon Aug 21 12:46:46 2017
@@ -77,9 +77,6 @@ BinaryStreamRef::BinaryStreamRef(StringR
: BinaryStreamRef(makeArrayRef(Data.bytes_begin(), Data.bytes_end()),
Endian) {}
-BinaryStreamRef::BinaryStreamRef(const BinaryStreamRef &Other)
- : BinaryStreamRefBase(Other) {}
-
Error BinaryStreamRef::readBytes(uint32_t Offset, uint32_t Size,
ArrayRef<uint8_t> &Buffer) const {
if (auto EC = checkOffset(Offset, Size))
@@ -117,9 +114,6 @@ WritableBinaryStreamRef::WritableBinaryS
: BinaryStreamRefBase(std::make_shared<MutableArrayRefImpl>(Data, Endian),
0, Data.size()) {}
-WritableBinaryStreamRef::WritableBinaryStreamRef(
- const WritableBinaryStreamRef &Other)
- : BinaryStreamRefBase(Other) {}
Error WritableBinaryStreamRef::writeBytes(uint32_t Offset,
ArrayRef<uint8_t> Data) const {
More information about the llvm-commits
mailing list