Index: src/core/SkBitmap.cpp |
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp |
index 8997f2b0140b41f62d1096e847f10b03a4cfaaa8..661dca3ea5cbe50cdd7326703d020e361ef2f1f0 100644 |
--- a/src/core/SkBitmap.cpp |
+++ b/src/core/SkBitmap.cpp |
@@ -39,6 +39,8 @@ SkBitmap::SkBitmap(const SkBitmap& src) { |
SkDEBUGCODE(this->validate();) |
} |
+SkBitmap::SkBitmap(SkBitmap&& other) : SkBitmap() { this->swap(other); } |
+ |
SkBitmap::~SkBitmap() { |
SkDEBUGCODE(this->validate();) |
this->freePixels(); |
@@ -72,6 +74,14 @@ SkBitmap& SkBitmap::operator=(const SkBitmap& src) { |
return *this; |
} |
+SkBitmap& SkBitmap::operator=(SkBitmap&& other) { |
+ if (this != &other) { |
+ this->swap(other); |
+ other.reset(); |
+ } |
+ return *this; |
+} |
+ |
void SkBitmap::swap(SkBitmap& other) { |
SkTSwap(fColorTable, other.fColorTable); |
SkTSwap(fPixelRef, other.fPixelRef); |