summaryrefslogtreecommitdiff
path: root/libutils
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2015-10-02 01:31:53 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-10-02 01:31:53 +0000
commit7e59e17474e3be00104da417dc04a9824ab6404e (patch)
tree6dc501f2e7681de1620d9eafe6133c3609ed4030 /libutils
parentdc53918efb984728bf27c34569e0326dce5b184e (diff)
parent0b2bce06382b5517a4dba33da5328c751f2c7a3e (diff)
am 0b2bce06: am bda375fa: am c6c6ab50: Merge "Implement C++11 move semantics for android::FileMap"
* commit '0b2bce06382b5517a4dba33da5328c751f2c7a3e': Implement C++11 move semantics for android::FileMap
Diffstat (limited to 'libutils')
-rw-r--r--libutils/FileMap.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/libutils/FileMap.cpp b/libutils/FileMap.cpp
index 91e45d873..4f4b8895a 100644
--- a/libutils/FileMap.cpp
+++ b/libutils/FileMap.cpp
@@ -53,6 +53,43 @@ FileMap::FileMap(void)
{
}
+// Move Constructor.
+FileMap::FileMap(FileMap&& other)
+ : mFileName(other.mFileName), mBasePtr(other.mBasePtr), mBaseLength(other.mBaseLength),
+ mDataOffset(other.mDataOffset), mDataPtr(other.mDataPtr), mDataLength(other.mDataLength)
+#if defined(__MINGW32__)
+ , mFileHandle(other.mFileHandle), mFileMapping(other.mFileMapping)
+#endif
+{
+ other.mFileName = NULL;
+ other.mBasePtr = NULL;
+ other.mDataPtr = NULL;
+#if defined(__MINGW32__)
+ other.mFileHandle = 0;
+ other.mFileMapping = 0;
+#endif
+}
+
+// Move assign operator.
+FileMap& FileMap::operator=(FileMap&& other) {
+ mFileName = other.mFileName;
+ mBasePtr = other.mBasePtr;
+ mBaseLength = other.mBaseLength;
+ mDataOffset = other.mDataOffset;
+ mDataPtr = other.mDataPtr;
+ mDataLength = other.mDataLength;
+ other.mFileName = NULL;
+ other.mBasePtr = NULL;
+ other.mDataPtr = NULL;
+#if defined(__MINGW32__)
+ mFileHandle = other.mFileHandle;
+ mFileMapping = other.mFileMapping;
+ other.mFileHandle = 0;
+ other.mFileMapping = 0;
+#endif
+ return *this;
+}
+
// Destructor.
FileMap::~FileMap(void)
{