summaryrefslogtreecommitdiff
path: root/src/buffer.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-06-29 13:19:29 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-06-29 13:19:29 +0200
commit49e1d918043c656dde9500ba7e09de173c8fef4a (patch)
tree720df980110d99e973f7279154ae0285f9ed3247 /src/buffer.hh
parent36e4dacdf5e33b9d92ea59124ef67a040b5392cb (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.hh14
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));
}
}