diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-06-29 13:19:29 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-06-29 13:19:29 +0200 |
| commit | 49e1d918043c656dde9500ba7e09de173c8fef4a (patch) | |
| tree | 720df980110d99e973f7279154ae0285f9ed3247 /src/buffer.hh | |
| parent | 36e4dacdf5e33b9d92ea59124ef67a040b5392cb (diff) | |
Buffer: pass by value instead of by reference when object will be copied anyway
Let copy elision and move semantics kick in
Diffstat (limited to 'src/buffer.hh')
| -rw-r--r-- | src/buffer.hh | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/buffer.hh b/src/buffer.hh index 80807efe..5fcf5811 100644 --- a/src/buffer.hh +++ b/src/buffer.hh @@ -91,14 +91,13 @@ struct Modification BufferIterator position; String content; - Modification(Type type, BufferIterator position, const String& content) - : type(type), position(position), content(content) {} + Modification(Type type, BufferIterator position, String content) + : type(type), position(position), content(std::move(content)) {} Modification inverse() const; static Modification make_erase(BufferIterator begin, BufferIterator end); - static Modification make_insert(BufferIterator position, - const String& content); + static Modification make_insert(BufferIterator position, String content); }; // A Buffer is a in-memory representation of a file @@ -116,8 +115,7 @@ public: Scratch }; - Buffer(const String& name, Type type, - const String& initial_content = "\n"); + Buffer(String name, Type type, String initial_content = "\n"); Buffer(const Buffer&) = delete; Buffer(Buffer&&) = delete; Buffer& operator= (const Buffer&) = delete; @@ -225,9 +223,9 @@ inline Modification Modification::make_erase(BufferIterator begin, } inline Modification Modification::make_insert(BufferIterator position, - const String& content) + String content) { - return Modification(Insert, position, content); + return Modification(Insert, position, std::move(content)); } } |
